profile
viewpoint
Lei Zhang antiagainst @google Toronto https://antiagainst.github.io Compilers. IRs. Now: MLIR, TensorFlow. Previous: SPIR-V, Vulkan; DXC/SPIR-V tech lead.

antiagainst/codeclimate-cppcheck 18

Code Climate Engine for Cppcheck

antiagainst/DirectXShaderCompiler 4

This repo hosts the source for the DirectX Shader Compiler which is based on LLVM/Clang.

antiagainst/graphics-concepts 3

Graphics concepts

antiagainst/klee-build-scripts 3

Build scripts for KLEE

antiagainst/dotfiles 2

Dev environment configuration files

antiagainst/antiagainst.github.io 1

Generated website for my personal blog

antiagainst/grub2-themes 1

Grub2 gfxmenu themes

antiagainst/blog 0

Markdown website data for personal blog

antiagainst/clspv 0

Clspv is a prototype compiler for a subset of OpenCL C to Vulkan compute shaders

push eventllvm/llvm-project

Lei Zhang

commit sha 63779fb462d828d16b87f427a6490dded842ca15

[mlir][spirv] Refactoring to avoid calling the same function twice

view details

push time in a day

issue commentgoogle/shaderc-rs

Publish new release?

Sure, will do. Thanks for the reminder!

repi

comment created time in a day

push eventllvm/llvm-project

Lei Zhang

commit sha 5bc6ff6455ec663a5da2681d057d0f848817b388

[mlir][spirv] Add some folders for spv.LogicalAnd/spv.LogicalOr This commit handles folding spv.LogicalAnd/spv.LogicalOr when one of the operands is constant true/false. Differential Revision: https://reviews.llvm.org/D75195

view details

push time in a day

push eventllvm/llvm-project

Lei Zhang

commit sha 1e9321e97aba43e41ccd7ab2f1bef41d5bcf65af

[mlir][spirv] NFC: move folders and canonicalizers in a separate file This gives us better file organization and faster compilation time by avoid having a gigantic SPIRVOps.cpp file.

view details

push time in a day

push eventllvm/llvm-project

Lei Zhang

commit sha 8358ddbe5d32d9aaa371b3de69f4efabf309b450

[mlir][spirv] NFC: Move test passes to test/lib Previously C++ test passes for SPIR-V were put under test/Dialect/SPIRV. Move them to test/lib/Dialect/SPIRV to create a better structure. Also fixed one of the test pass to use new PassRegistration mechanism. Differential Revision: https://reviews.llvm.org/D75066

view details

push time in 3 days

pull request commentgoogle/iree

Update tensorflow and llvm submodules.

Sorry for the late reply. Yeah I think that makes sense. mlir-opt is for testing purpose in MLIR core so it's pulling in all core dialects/passes for that. TF has its own tf-opt. Right now our iree-opt does not control the main function but I think we should.

stellaraccident

comment created time in 6 days

push eventllvm/llvm-project

Lei Zhang

commit sha 35b685270b410f6a1351c2a527021f22330c25b9

[mlir] Add a signedness semantics bit to IntegerType Thus far IntegerType has been signless: a value of IntegerType does not have a sign intrinsically and it's up to the specific operation to decide how to interpret those bits. For example, std.addi does two's complement arithmetic, and std.divis/std.diviu treats the first bit as a sign. This design choice was made some time ago when we did't have lots of dialects and dialects were more rigid. Today we have much more extensible infrastructure and different dialect may want different modelling over integer signedness. So while we can say we want signless integers in the standard dialect, we cannot dictate for others. Requiring each dialect to model the signedness semantics with another set of custom types is duplicating the functionality everywhere, considering the fundamental role integer types play. This CL extends the IntegerType with a signedness semantics bit. This gives each dialect an option to opt in signedness semantics if that's what they want and helps code sharing. The parser is modified to recognize `si[1-9][0-9]*` and `ui[1-9][0-9]*` as signed and unsigned integer types, respectively, leaving the original `i[1-9][0-9]*` to continue to mean no indication over signedness semantics. All existing dialects are not affected (yet) as this is a feature to opt in. More discussions can be found at: https://groups.google.com/a/tensorflow.org/d/msg/mlir/XmkV8HOPWpo/7O4X0Nb_AQAJ Differential Revision: https://reviews.llvm.org/D72533

view details

push time in 6 days

create barnchantiagainst/llvm-project

branch : int-sign

created branch time in 6 days

delete branch antiagainst/llvm-project

delete branch : spv-fn

delete time in 7 days

push eventllvm/llvm-project

Alexandre Eichenberger

commit sha 476ca094c846a0b6d4d9f37710aba21a6b0b265a

[mlir][ods] Adding attribute setters generation In some dialects, attributes may have default values that may be determined only after shape inference. For example, attributes that are dependent on the rank of the input cannot be assigned a default value until the rank of the tensor is inferred. While we can set attributes without explicit setters, referring to the attributes via accessors instead of having to use the string interface is better for compile time verification. The proposed patch add one method per operation attribute that let us set its value. The code is a very small modification of the existing getter methods. Differential Revision: https://reviews.llvm.org/D74143

view details

push time in 8 days

push eventllvm/llvm-project

Denis Khalikov

commit sha 896ee361a641bf9529bb9103a3a018b1c28dc21d

[mlir][spirv] Add mlir-vulkan-runner Add an initial version of mlir-vulkan-runner execution driver. A command line utility that executes a MLIR file on the Vulkan by translating MLIR GPU module to SPIR-V and host part to LLVM IR before JIT-compiling and executing the latter. Differential Revision: https://reviews.llvm.org/D72696

view details

push time in 8 days

issue commentgfx-rs/rspirv

Publish 1.3.5 of spirv-headers

The syn dependency is due to derive_more used by rspirv. If one bumps the version of derive_more to 0.99 then syn will go away. But that results in some compilation failures I haven't gotten time to look into it.

Jasper-Bekkers

comment created time in 9 days

pull request commentgfx-rs/rspirv

Merge SPIR-V json to 1.5.1

I mean switching to use upstream spirv.core.grammar.json?

Jasper-Bekkers

comment created time in 9 days

pull request commentgfx-rs/rspirv

Merge SPIR-V json to 1.5.1

I've pushed out v.1.4.2 so this now has conflicts. Yeah, v1.5 is a substantial change to the grammar file. I think it's the time for us to ditch our own local copy of spirv.core.grammar.json now. Do you have time to look into this?

Jasper-Bekkers

comment created time in 9 days

push eventgfx-rs/rspirv

Lei Zhang

commit sha 39058551b3bb2340d8c4d2d1da3fcccc6b197080

Update Cargo.lock after spirv_headers version bump

view details

push time in 9 days

push eventgfx-rs/rspirv

Lei Zhang

commit sha 360d176d56d91b94bce13a17c94f7b7912cfa426

Bump spirv_headers to v1.4.2 and explain the version number

view details

push time in 9 days

push eventgfx-rs/rspirv

Lei Zhang

commit sha f601ca2058389029353cc1cb2823c9677d57c1d4

Fix spirv_headers generation We have a local copy of spirv.core.grammar.json that patches the upstream one with classes and fixes to allow us to drive code autogeneration. It should pull in new symbols defined in the upstream grammar file. Also op symbols introduced in extensions can become core with version number bump but we still need to recognize the previous symbols. This will require us to use associated constants. Fixes https://github.com/gfx-rs/rspirv/issues/117

view details

Lei Zhang

commit sha bc3037ee9c305276f0698c20b0895d46ac5f6e17

Remove bors.toml

view details

Lei Zhang

commit sha f7994bb185405dc17ffd4000f6aa7fb207b103f3

Update dependencies

view details

push time in 9 days

issue closedgfx-rs/rspirv

0.5.x doesn't compile anymore

   Compiling rspirv v0.5.4
error[E0599]: no variant or associated item named `DecorateStringGOOGLE` found for type `spirv::Op` in the current scope
   --> /home/maik/.cargo/registry/src/github.com-1ecc6299db9ec823/rspirv-0.5.4/grammar/table.rs:433:11
    |
433 |     inst!(DecorateStringGOOGLE, [], [(IdRef, One), (Decoration, One)]),
    |           ^^^^^^^^^^^^^^^^^^^^
    |           |
    |           variant or associated item not found in `spirv::Op`
    |           help: there is a variant with a similar name: `DecorateString`

error[E0599]: no variant or associated item named `DecorateStringGOOGLE` found for type `spirv::Op` in the current scope
  --> /home/maik/.cargo/registry/src/github.com-1ecc6299db9ec823/rspirv-0.5.4/grammar/reflect.rs:53:20
   |
53 |         spirv::Op::DecorateStringGOOGLE |
   |                    ^^^^^^^^^^^^^^^^^^^^
   |                    |
   |                    variant or associated item not found in `spirv::Op`
   |                    help: there is a variant with a similar name: `DecorateString`

error[E0308]: mismatched types
   --> /home/maik/.cargo/registry/src/github.com-1ecc6299db9ec823/rspirv-0.5.4/mr/constructs.rs:190:22
    |
190 |             version: (spirv::MAJOR_VERSION << 16) | (spirv::MINOR_VERSION << 8),
    |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected u32, found u8

error[E0599]: no variant or associated item named `DecorateStringGOOGLE` found for type `spirv::Op` in the current scope
  --> /home/maik/.cargo/registry/src/github.com-1ecc6299db9ec823/rspirv-0.5.4/mr/build_annotation.rs:62:56
   |
62 |         let mut inst = mr::Instruction::new(spirv::Op::DecorateStringGOOGLE, None, None, vec![mr::Operand::IdRef(target), mr::Operand::Decoration(decoration)]);
   |                                                        ^^^^^^^^^^^^^^^^^^^^
   |                                                        |
   |                                                        variant or associated item not found in `spirv::Op`
   |                                                        help: there is a variant with a similar name: `DecorateString`

error: aborting due to 4 previous errors

There was a breaking change in spirv_headers 1.3 to 1.4 where DecorateStringGOOGLE got renamed.

Temporary workaround is to fix the cargo.lock file to point to 1.3.4 instead.

If instead we had specified the version string as ^1.0, cargo should update to 1.1 if it is the latest 1.y release, but not 2.0

closed time in 9 days

MaikKlein

issue commentgfx-rs/rspirv

0.5.x doesn't compile anymore

I'm working on fixing this bug by generating associated constants for the duplicated op symbols now.

MaikKlein

comment created time in 9 days

pull request commentgoogle/iree

CMake: Update tensorflow and llvm submodules.

Awesome, thanks @marbre! Yeah we should hand pick the dialects/passes only useful to us. Less dependencies is better. :) I think it's reasonable to dropMLIRTargetNVVMIR and MLIRTargetROCDLIR given we've no use of them. For MLIRTargetLLVMIR, I'm not sure about the current progress on LLVM CPU side. Maybe it will be used later. But if it does not fail to remove at the moment, we can also remove it and add later when it's needed.

marbre

comment created time in 13 days

pull request commentgoogle/iree

Update tensorflow and llvm submodules.

Yeah right now we can rely on the gigantic initAllDialects and initAllPasses. In the future we will need distilled ones with explicit register*() in binaries like what is happening with

https://github.com/llvm/llvm-project/blob/b6a9fe209992789be3ed95664d25196361cfad34/mlir/tools/mlir-opt/mlir-opt.cpp#L81-L104

stellaraccident

comment created time in 13 days

push eventllvm/llvm-project

Denis Khalikov

commit sha a062a3ed7fd82c277812d80fb83dc6f05b939a84

[mlir][spirv] Add ConvertGpuLaunchFuncToVulkanCallsPass Implement a pass to convert gpu.launch_func op into a sequence of Vulkan runtime calls. The Vulkan runtime API surface is huge so currently we don't expose separate external functions in IR for each of them, instead we expose a few external functions to wrapper libraries which manages Vulkan runtime. Differential Revision: https://reviews.llvm.org/D74549

view details

push time in 14 days

push eventllvm/llvm-project

Lei Zhang

commit sha d3e7816d85460c75d3d49eeef91551215382974a

[mlir][spirv] Introduce spv.func Thus far we have been using builtin func op to model SPIR-V functions. It was because builtin func op used to have special treatment in various parts of the core codebase (e.g., pass pipelines, etc.) and it's easy to bootstrap the development of the SPIR-V dialect. But nowadays with general op concepts and region support we don't have such limitations and it's time to tighten the SPIR-V dialect for completeness. This commits introduces a spv.func op to properly model SPIR-V functions. Compared to builtin func op, it can provide the following benefits: * We can control the full op so we can integrate SPIR-V information bits (e.g., function control) in a more integrated way and define our own assembly form and enforcing better verification. * We can have a better dialect and library boundary. At the current moment only functions are modelled with an external op. With this change, all ops modelling SPIR-V concpets will be spv.* ops and registered to the SPIR-V dialect. * We don't need to special-case func op anymore when creating ConversionTarget declaring SPIR-V dialect as legal. This is quite important given we'll see more and more conversions in the future. In the process, bumps a few FuncOp methods to the FunctionLike trait. Differential Revision: https://reviews.llvm.org/D74226

view details

push time in 15 days

push eventantiagainst/llvm-project

Michał Górny

commit sha 1ff411295f92cddfce21521594d58cf407a15189

[lldb] Improve debugging 32-bit programs on NetBSD/amd64 Implement detection of ELF binary format, and support for i386 register context on amd64 when a 32-bit executable is being debugged. This is roughly based on the code from Linux. Differential Revision: https://reviews.llvm.org/D73974

view details

Amara Emerson

commit sha 28d22c2c9c3199c60ba8ff0a06d06a6ff70b609d

[GlobalISel][IRTranslator] Add special case support for ~memory inline asm clobber. This is a one off special case, since actually implementing full inline asm support will be much more involved. This lets us compile a lot more code as a common simple case. Differential Revision: https://reviews.llvm.org/D74201

view details

Simon Pilgrim

commit sha c96001035d4b7ac1b4b84705c7035d6c0fa28ffa

[X86] isNegatibleForFree - allow pre-legalized FMA negation As long as the FMA operation is legal (which we can proxy for the FMA3/FMA4 variants as well), we don't have to wait for the LegalOperations stage.

view details

Sanjay Patel

commit sha de6f7eb47e9994ddb2cd906337331a6ceff27390

[x86] don't create an unused constant vector Noticed while scanning through debug spew. Creating unused nodes is inefficient and makes following the debug output harder.

view details

Pavel Labath

commit sha 80331610729137db55d29c902e5e464fbf9bd931

[lldb] Delete ValueObjectRegisterContext class It is unused.

view details

aartbik

commit sha e52414b1ae466acf900fc4515abf7de5a3fd6fca

[mlir][VectorOps] Generalized vector.print to i32/i64 Summary: Lowering to LLVM IR was restricted to float/double. This CL also adds the integral values. Reviewers: andydavis1, nicolasvasilache, ftynse Reviewed By: nicolasvasilache, ftynse Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74179

view details

Fangrui Song

commit sha e3951248b14f5523cb93b380f0995d611a56192f

[yaml2obj] Add -D k=v to preprocess the input YAML Examples: ``` yaml2obj -D MACHINE=EM_386 a.yaml -o a.o yaml2obj -D MACHINE=0x1234 a.yaml -o a.o ``` where a.yaml contains: ``` --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2MSB Type: ET_REL Machine: [[MACHINE]] ``` Reviewed By: grimar, jhenderson Differential Revision: https://reviews.llvm.org/D73821

view details

Fangrui Song

commit sha e2d7c5b2b6559f311938c0853b46ff21df55938a

[yaml2obj][test] Simplify some e_machine EI_CLASS EI_DATA tests When both little-endian and big-endian are tested, or both 32-bit and 64-bit are tested, use a template like the following with `-D BITS=32 -D ENCODE=LSB` ``` --- !ELF FileHeader: Class: ELFCLASS[[BITS]] Data: ELFDATA2[[ENCODE]] Type: ET_DYN Machine: EM_X86_64 ``` Reviewed By: grimar, jhenderson Differential Revision: https://reviews.llvm.org/D73828

view details

Petar Avramovic

commit sha 7df5fc9e03ec5788e2ae0c1c730a5f26db441f66

[GlobalISel] Add buildMerge with SrcOp initializer list Allows more flexible use of buildMerge in places where use operands are available as SrcOp since it does not require explicit conversion to Register. Simplify code with new buildMerge. Differential Revision: https://reviews.llvm.org/D74223

view details

Fangrui Song

commit sha f08099b9c26be463aca096f73e9863921dddf792

[ELF][ARM][test] Keep arm-thumb-interwork-shared.s The revert of D73542 (c29003813ab9bd6ea7b6de40ea8f1fe21979f13f) deleted the newly added tests to arm-thumb-interwork-shared.s . We should keep them.

view details

Med Ismail Bennani

commit sha 2e005c64f3019aada8df29a24dcfe56f044e2e59

[lldb/test] Skip the AssertFrameRecognizer test for Linux This patch skips the AssertFrameRecognizer test for Linux since it appears to fail on certain distributions (AFAIK Fedora & ArchLinux). The failure happen because the thread don't set the current frame to the most relevant one. So the stopped location doesn't match with what the test is expecting. The test will be enabled again after I'll be able to reproduce the failure on one of those platform and fix the issue. Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>

view details

Pavel Labath

commit sha e21b39a86dd6e8d1a5a5fe7e0286f8570732834d

[lldb] Group ABI plugins Summary: There's a fair amount of code duplication between the different ABI plugins for the same architecture (e.g. ABIMacOSX_arm & ABISysV_arm). Deduplicating this code is not very easy at the moment because there is no good place where to put the common code. Instead of creating more plugins, this patch reduces their number by grouping similar plugins into a single folder/plugin. This makes it easy to extract common code to a (e.g.) base class, which can then live in the same folder. The grouping is done based on the underlying llvm target for that architecture, because the plugins already require this for their operation. Reviewers: JDevlieghere, jasonmolenda, jfb Subscribers: sdardis, nemanjai, mgorny, kristof.beyls, fedor.sergeev, kbarton, jrtc27, atanasyan, jsji, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D74138

view details

Vedant Kumar

commit sha 0d0ef315cb2004c70ab27482dc41dd046a372d1e

[MachineInstr] Add isCandidateForCallSiteEntry predicate Add the isCandidateForCallSiteEntry predicate to MachineInstr to determine whether a DWARF call site entry should be created for an instruction. For now, it's enough to have any call instruction that doesn't belong to a blacklisted set of opcodes. For these opcodes, a call site entry isn't meaningful. Differential Revision: https://reviews.llvm.org/D74159

view details

Matt Arsenault

commit sha cbe0c8299e946e572870054cf21ccb7e86d90d03

AMDGPU/GlobalISel: Fix missing test for select of s64 scalar G_CTPOP

view details

Michael Liao

commit sha 2926917f430d705f084813b63a40fafc61872524

[clang] Fix linkage of nested lambdas. patch from Philippe Daouadi <blastrock@free.fr> This is an attempt to fix [PR#44368](https://bugs.llvm.org/show_bug.cgi?id=44368) This effectively reverts [D1783](https://reviews.llvm.org/D1783). It doesn't break the current tests and fixes the test that this commit adds. We now decide of a lambda linkage only depending on the visibility of its parent context. Differential Revision: https://reviews.llvm.org/D73701

view details

Jay Foad

commit sha 13f8be68e0b833e83f6501a8d76fedfcdc457331

[AMDGPU] Use @LINE for error checking in gfx10 assembler tests Summary: This is a rework of D72611, using @LINE to check that errors are reported against the right instruction instead of adding lots of extra *-ERR-NEXT: check lines. Reviewers: rampitec, arsenm, nhaehnle Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74227

view details

Craig Topper

commit sha 278578744a4773d592c8b4be6827472a4a77a9c8

[X86] Handle SETB_C32r/SETB_C64r in flag copy lowering the same way we handle SBB Previously we took the restored flag in a GPR, extended it 32 or 64 bits. Then used as an input to a sub from 0. This requires creating a zero extend and creating a 0. This patch changes this to just use an ADD with 255 to restore the carry flag and keep the SETB_C32r/SETB_C64r. Exactly like we handle SBB which is what SETB becomes. Differential Revision: https://reviews.llvm.org/D74152

view details

Sean Fertile

commit sha 88073d40c7d84d59cffe7703e2a85694936fff68

[PowerPC] Create a FixedStack object for CR save in linkage area. hasReservedSpillSlot returns a dummy frame index of '0' on PPC64 for the non-volatile condition registers, which leads to the CalleSavedInfo either referencing an unrelated stack object, or an invalid object if there are no stack objects. The latter case causes the mir-printer to crash due to assertions that checks if the frame index referenced by a CalleeSavedInfo is valid. To fix the problem create an immutable FixedStack object at the correct offset in the linkage area of the previous stack frame (ie SP + positive offset). Differential Revision: https://reviews.llvm.org/D73709

view details

MaheshRavishankar

commit sha d06dd29e09b6b03a834ec0639d57446fb8515d12

[mlir][Linalg] Implement fusion of linalg.generic operation on tensors. The initial implementation of the fusion operation exposes a method to fuse a consumer with its producer, when - both the producer and consumer operate on tensors - the producer has only a single result value - the producer has only "parallel" iterator types A new interface method hasTensorSemantics is added to verify that an operation has all operands and results of type RankedTensorType. Differential Revision: https://reviews.llvm.org/D74172

view details

serge_sans_paille

commit sha 4a1a0690ad6813a4c8cdb8dc20ea6337aa1f61e0

Support -fstack-clash-protection for x86 Implement protection against the stack clash attack [0] through inline stack probing. Probe stack allocation every PAGE_SIZE during frame lowering or dynamic allocation to make sure the page guard, if any, is touched when touching the stack, in a similar manner to GCC[1]. This extends the existing `probe-stack' mechanism with a special value `inline-asm'. Technically the former uses function call before stack allocation while this patch provides inlined stack probes and chunk allocation. Only implemented for x86. [0] https://www.qualys.com/2017/06/19/stack-clash/stack-clash.txt [1] https://gcc.gnu.org/ml/gcc-patches/2017-07/msg00556.html This a recommit of 39f50da2a357a8f685b3540246c5d762734e035f with correct option flags set. Differential Revision: https://reviews.llvm.org/D68720

view details

push time in 16 days

create barnchantiagainst/llvm-project

branch : spv-fn

created branch time in 16 days

issue commentgoogle/iree

iree_status_t/Status reworking

C macros and compiler builtin functions FTW! :)

benvanik

comment created time in 16 days

push eventllvm/llvm-project

Joonsoo Jeon

commit sha b04885a55c2aa4666a420a5638db75bee9a44fa0

[mlir][ods] Added RankedIntElementsAttr class Defines a tablegen class RankedIntElementsAttr. This is an integer version of RankedFloatElementsAttr. Differential Revision: https://reviews.llvm.org/D73764

view details

push time in 16 days

delete branch antiagainst/llvm-project

delete branch : target-env-attr

delete time in 16 days

push eventllvm/llvm-project

Feng Liu

commit sha 8d96aed566526a27174f3e7369a39126b9e9904d

[mlir] Use the first location in the fused location for diagnostic handler Differential Revision: https://reviews.llvm.org/D71851

view details

push time in 16 days

push eventllvm/llvm-project

Lei Zhang

commit sha 50aeeed8a2dd68d2ead2a5337260e21e3d098764

[mlir][spirv] Use spv.entry_point_abi in GPU to SPIR-V conversions We have spv.entry_point_abi for specifying the local workgroup size. It should be decorated onto input gpu.func ops to drive the SPIR-V CodeGen to generate the proper SPIR-V module execution mode. Compared to using command-line options for specifying the configuration, using attributes also has the benefits that 1) we are now able to use different local workgroup for different entry points and 2) the tests contains the configuration directly. Differential Revision: https://reviews.llvm.org/D74012

view details

push time in 17 days

push eventllvm/llvm-project

natashaknk

commit sha 9c1c825b724928130a4e73a24d12943de1fd0581

[mlir][spirv] Adding sin op in the GLSL extension Differential Revision: https://reviews.llvm.org/D74151

view details

push time in 20 days

push eventllvm/llvm-project

Lei Zhang

commit sha 13b197c7d18b7c74df6e97fcb5c0f5cb3a04fcb4

[mlir][spirv] Add dialect-specific attribute for target environment We were using normal dictionary attribute for target environment specification. It becomes cumbersome with more and more fields. This commit changes the modelling to a dialect-specific attribute, where we can have control over its storage and assembly form. Differential Revision: https://reviews.llvm.org/D73959

view details

push time in 23 days

issue commentgoogle/shaderc-rs

Undocumented dependency on Python2

I think it makes sense to search and invoke python3 explicitly. But I'm not so familiar with Windows; it would be nice to get @rukai's opinion here given that he did the windows setup steps initially.

nbraud

comment created time in 23 days

push eventllvm/llvm-project

Lei Zhang

commit sha aad352f77c472b9db42b22134433f79622bdf0e4

[mlir][spirv] Wrap debug-only method in #ifndef NDEBUG

view details

push time in 23 days

push eventantiagainst/llvm-project

David Green

commit sha d50e188a072deca9d48149e05a05756c474bf569

Revert "[ARM][MVE] VPT Blocks: findVCMPToFoldIntoVPS" This reverts commit e34801c8e6df and the followup due to multiple problems. I've tried to keep the tests and RDA parts where possible, as those still seem useful.

view details

Tyker

commit sha 4dba14cf37abda16ab33cb748a5c762dae2e95e9

[NFC] Refactor TableGen for attributes Summary: this patch makes tablegen generate llvm attributes in a more generic and simpler (at least to me). changes: make tablegen generate ... ATTRIBUTE_ENUM(Alignment,align) ATTRIBUTE_ENUM(AllocSize,allocsize) ... which can be used to generate most of what was previously used and more. Tablegen was also generating attributes from 2 identical files leading to identical output. so I removed one of them and made user use the other. Reviewers: jdoerfert, thakis, aaron.ballman Reviewed By: aaron.ballman Subscribers: mgorny, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72455

view details

Tyker

commit sha 2ff5602cb52969d3273062f36340fe95ac4e82da

[WIP] Build assume from call Summary: this is part of the implementation of http://lists.llvm.org/pipermail/llvm-dev/2019-December/137632.html this patch gives the basis of building an assume to preserve all information from an instruction and add support for building an assume that preserve the information from a call. Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: mgrang, fhahn, mgorny, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72475

view details

Tyker

commit sha ff1b9add2ffd47abc649895e33b3e5c30d6f2079

[NFC] Factor out function to detect if an attribute has an argument. Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72884

view details

Tyker

commit sha d431c5d9af22338100c0be71cccfcd3ab425848e

Revert "[NFC] Factor out function to detect if an attribute has an argument." This reverts commit ff1b9add2ffd47abc649895e33b3e5c30d6f2079.

view details

Nathan James

commit sha d591bdce6d623208d4aeb335a762d839f0f8f0f7

[clang-tidy] Fixed crash 44745 in readability-else-after-return Summary: Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=44745 | readability-else-after-return crashes ]] Reviewers: aaron.ballman, alexfh, hokein, JonasToth, gribozavr2 Reviewed By: alexfh Subscribers: merge_guards_bot, xazax.hun, cfe-commits Tags: #clang, #clang-tools-extra Differential Revision: https://reviews.llvm.org/D73841

view details

Tyker

commit sha 0adda3df924b740a24772f9aa251f1c75f7d9517

Revert "[WIP] Build assume from call" This reverts commit 2ff5602cb52969d3273062f36340fe95ac4e82da.

view details

Tyker

commit sha 89d3b070c1ee305fc6e1f397ef64c0b7a8f2f83d

Revert "[NFC] Refactor TableGen for attributes" This reverts commit 4dba14cf37abda16ab33cb748a5c762dae2e95e9.

view details

Tyker

commit sha cfe87a4a16b73652dc06f9fa334137656991f13f

[NFC] Refactor TableGen for attributes Summary: this patch makes tablegen generate llvm attributes in a more generic and simpler (at least to me). changes: make tablegen generate ... ATTRIBUTE_ENUM(Alignment,align) ATTRIBUTE_ENUM(AllocSize,allocsize) ... which can be used to generate most of what was previously used and more. Tablegen was also generating attributes from 2 identical files leading to identical output. so I removed one of them and made user use the other. Reviewers: jdoerfert, thakis, aaron.ballman Reviewed By: aaron.ballman Subscribers: mgorny, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72455

view details

Aaron Puchert

commit sha a9ab01a330f4c7c316fa87c8446888c73dae5536

Remove superfluous space from -Wrange-loop-construct message

view details

Sanjay Patel

commit sha 9b9e2da07dd3b103e5a41a3519d839117d994ffa

[Analysis] add optional index parameter to isSplatValue() We want to allow splat value transforms to improve PR44588 and related bugs: https://bugs.llvm.org/show_bug.cgi?id=44588 ...but to do that, we need to know if values are splatted from the same, specific index (lane) rather than splatted from an arbitrary index. We can improve the undef handling with 1-liner follow-ups because the Constant API optionally allow undefs now. Differential Revision: https://reviews.llvm.org/D73549

view details

Tyker

commit sha 355e4bfd7890e50b492b2dc29f70fc41ad8f867f

[WIP] Build assume from call Summary: this is part of the implementation of http://lists.llvm.org/pipermail/llvm-dev/2019-December/137632.html this patch gives the basis of building an assume to preserve all information from an instruction and add support for building an assume that preserve the information from a call. Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: mgrang, fhahn, mgorny, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72475

view details

Tyker

commit sha ad8ffc50104ff3c8cb401cef13bd71bf617db3a9

Revert "[WIP] Build assume from call" This reverts commit 355e4bfd7890e50b492b2dc29f70fc41ad8f867f.

view details

Tyker

commit sha 780d2c532fe5ca4a368c5e631197a839e03a3cc4

[WIP] Build assume from call Summary: this is part of the implementation of http://lists.llvm.org/pipermail/llvm-dev/2019-December/137632.html this patch gives the basis of building an assume to preserve all information from an instruction and add support for building an assume that preserve the information from a call. Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: mgrang, fhahn, mgorny, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72475

view details

Tyker

commit sha c2d03362081b1aa6cda79924c1d5fb77f2ed57ae

Revert "[WIP] Build assume from call" caused build bot failure This reverts commit 780d2c532fe5ca4a368c5e631197a839e03a3cc4.

view details

Tyker

commit sha 8ebe001553d0c204cc41f3dbc595031828b1f140

[WIP] Build assume from call Summary: this is part of the implementation of http://lists.llvm.org/pipermail/llvm-dev/2019-December/137632.html this patch gives the basis of building an assume to preserve all information from an instruction and add support for building an assume that preserve the information from a call. Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: mgrang, fhahn, mgorny, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72475

view details

Fangrui Song

commit sha 5a56a25b0bd1279c41604a64c6a1bec3815b9b36

[CodeGenPrepare] Make TargetPassConfig required The code paths in the absence of TargetMachine, TargetLowering or TargetRegisterInfo are poorly tested. As rL285987 said, requiring TargetPassConfig allows us to delete many (untested) checks littered everywhere. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D73754

view details

Tyker

commit sha 7cb5d96fbe75192cd3bb5a3554a6c6ff87dc7b6a

Revert "[WIP] Build assume from call" casued buildbot failure This reverts commit 8ebe001553d0c204cc41f3dbc595031828b1f140.

view details

Fangrui Song

commit sha 44cdae68c3b8068750e3f6edcccad99e091ce922

[CodeGenPrepare] Delete dead !DL check Follow-up for D73754 DL is assigned in CodeGenPrepare::runOnFunction and is guaranteed to be non-null.

view details

Fangrui Song

commit sha eee6a45a1308d40ceb5fc6f339497a0ce3930020

[CodeGenPrepare][test] Add REQUIRES to two tests after D73754

view details

push time in 23 days

push eventllvm/llvm-project

Lei Zhang

commit sha 399887c9e43bf1892b553116bc128d5204eb3880

[mlir][spirv] Add resource limits into target environment This commit adds two resource limits, max_compute_workgroup_size and max_compute_workgroup_invocations as resource limits to the target environment. They are not used at the current moment, but they will affect the SPIR-V CodeGen. Adding for now to have a proper target environment modelling. Differential Revision: https://reviews.llvm.org/D73905

view details

push time in 23 days

push eventantiagainst/llvm-project

Lei Zhang

commit sha 27e737e8dc7805ff06a60ebb2a89f39028ee3b63

[mlir][spirv] Add resource limits into target environment This commit adds two resource limits, max_compute_workgroup_size and max_compute_workgroup_invocations as resource limits to the target environment. They are not used at the current moment, but they will affect the SPIR-V CodeGen. Adding for now to have a proper target environment modelling.

view details

Lei Zhang

commit sha b23699c5ba44c2475010207a0e7a78f321f13dbe

[mlir][spirv] Add dialect-specific attribute for target environment We were using normal dictionary attribute for target environment specification. It becomes cumbersome with more and more fields. This commit changes the modelling to a dialect-specific attribute, where we can have control over its storage and assembly form.

view details

push time in 25 days

push eventantiagainst/llvm-project

Matt Arsenault

commit sha c0b12916a7e81ed5018cd94606d1d99dc759704e

AMDGPU/GlobalISel: Use more wide vector load/stores This improves the type breakdown for some large vectors. For example, we now get a <4 x s32> and s32 store instead of 5 s32 stores for <5 x s32>.

view details

Alex Richardson

commit sha 24ee9c84962ec33689d0415b4e0600554d501f75

Don't mark MIPS TRAP as isTerminator This was causing machine verifier errors when compiling libunwind. Reviewed By: atanasyan Differential Revision: https://reviews.llvm.org/D73648

view details

Jacques Pienaar

commit sha 1544cf2d7cecf61cf3a7d309b7a9fc92ef77c34a

[mlir] Fix errors in release & no-assert Seen on gcc 8, in release mode & assertions off warnings about logger, made all statements referencing logger inside LLVM_DEBUG blocks and ifdef a few variables only used in debug. This is mechanical fix to get CI green.

view details

mydeveloperday

commit sha 70c98671fa7b395a52829b91782393f4c2613562

[clang-format] Add option for not breaking line before ObjC params Summary: From `clang-format` version 3.7.0 and up, , there is no way to keep following format of ObjectiveC block: ``` - (void)_aMethod { [self.test1 t:self w:self callback:^(typeof(self) self, NSNumber *u, NSNumber *v) { u = c; }] } ``` Regardless of the change in `.clang-format` configuration file, all parameters will be lined up so that colons will be on the same column, like following: ``` - (void)_aMethod { [self.test1 t:self w:self callback:^(typeof(self) self, NSNumber *u, NSNumber *v) { u = c; }] } ``` Considering with ObjectiveC, the first code style is cleaner & more readable for some people, I've added a config option: `ObjCDontBreakBeforeNestedBlockParam` (boolean) so that if it is enable, the first code style will be favored. Reviewed By: MyDeveloperDay Patch By: ghvg1313 Tags: #clang, #clang-format Differential Revision: https://reviews.llvm.org/D70926

view details

Mark de Wever

commit sha c03349e40f21f0375278138992a32694a99c830e

[Sema] Remove a -Wrange warning from -Wall During the review of D73007 Aaron Puchert mentioned `warn_for_range_variable_always_copy` shouldn't be part of -Wall since some coding styles require `for(const auto &bar : bars)`. This warning would cause false positives for these users. Based on Aaron's proposal refactored the warnings: * -Wrange-loop-construct warns about possibly unintended constructor calls. This is part of -Wall. It contains * warn_for_range_copy: loop variable A of type B creates a copy from type C * warn_for_range_const_reference_copy: loop variable A is initialized with a value of a different type resulting in a copy * -Wrange-loop-bind-reference warns about misleading use of reference types. This is not part of -Wall. It contains * warn_for_range_variable_always_copy: loop variable A is always a copy because the range of type B does not return a reference Differential Revision: https://reviews.llvm.org/D73434

view details

Craig Topper

commit sha 943b5561d6a6fccee7fbaa8842074563f8b66927

[LegalizeTypes][X86] Add a new strategy for type legalizing f16 type that softens it to i16, but promotes to f32 around arithmetic ops. This is based on this llvm-dev thread http://lists.llvm.org/pipermail/llvm-dev/2019-December/137521.html The current strategy for f16 is to promote type to float every except where the specific width is required like loads, stores, and bitcasts. This results in rounding occurring in odd places instead of immediately after arithmetic operations. This interacts in weird ways with the __fp16 type in clang which is a storage only type where arithmetic is always promoted to float. InstCombine can remove some fpext/fptruncs around such arithmetic and turn it into arithmetic on half. This wouldn't be so bad if SelectionDAG was able to put those fpext/fpround back in when it promotes. It is also not obvious how to handle to make the existing strategy work with STRICT fp. We need to use STRICT versions of the conversions which require chain operands. But if the conversions are created for a bitcast, there is no place to get an appropriate chain from. This patch implements a different strategy where conversions are emitted directly around arithmetic operations. And otherwise its passed around as an i16 including in arguments and return values. This can result in more conversions between arithmetic operations, but is closer to matching the IR the frontend generates for __fp16. And it will allow us to use the chain from constrained arithmetic nodes to link the STRICT_FP_TO_FP16/STRICT_FP16_TO_FP that will need to be added. I've set it up so that each target can opt into the new behavior. Converting all the targets myself was more than I was able to handle. Differential Revision: https://reviews.llvm.org/D73749

view details

Stefan Gränitz

commit sha 234f3b16918b5721bbc3449d11e4f317142271e7

Add ThinLtoJIT example Summary: Prototype of a JIT compiler that utilizes ThinLTO summaries to compile modules ahead of time. This is an implementation of the concept I presented in my "ThinLTO Summaries in JIT Compilation" talk at the 2018 Developers' Meeting: http://llvm.org/devmtg/2018-10/talk-abstracts.html#lt8 Upfront the JIT first populates the *combined ThinLTO module index*, which provides fast access to the global call-graph and module paths by function. Next, it loads the main function's module and compiles it. All functions in the module will be emitted with prolog instructions that *fire a discovery flag* once execution reaches them. In parallel, the *discovery thread* is busy-watching the existing flags. Once it detects one has fired, it uses the module index to find all functions that are reachable from it within a given number of calls and submits their defining modules to the compilation pipeline. While execution continues, more flags are fired and further modules added. Ideally the JIT can be tuned in a way, so that in the majority of cases the code on the execution path can be compiled ahead of time. In cases where it doesn't work, the JIT has a *definition generator* in place that loads modules if missing functions are reached. Reviewers: lhames, dblaikie, jfb, tejohnson, pree-jackie, AlexDenisov, kavon Subscribers: mgorny, mehdi_amini, inglorion, hiraditya, steven_wu, dexonsmith, arphaman, jfb, merge_guards_bot, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72486

view details

Craig Topper

commit sha d975910c50fb05b466f64beab1d43f8e8402bbdd

[X86] Don't exit from foldOffsetIntoAddress if the Offset is 0, but AM.Disp is non-zero. This is an alternate fix for the issue D73606 was trying to solve. The main issue here is that we bailed out of foldOffsetIntoAddress if Offset is 0. But if we just found a symbolic displacement and AM.Disp became non-zero earlier, we still need to validate that AM.Disp with the symbolic displacement. This is my second attempt at committing this after failing build bots previously. One thing I realized about the previous attempt is that its possible that AM.Disp is already non-zero and the new Offset changes it back to zero. In that case my previous attempt failed to update AM.Disp to zero. So this patch removes the early out for 0 and appropriately handle the 0 case in each check so we still update AM.Disp at the end.

view details

Craig Topper

commit sha a57dd66d5e1c7e2514d42afdcb74566b76552e60

[X86] In X86FastEmitSSESelect, fall back to SelectionDAG if the inputs to the compare can't be found in registers. We were checking that the original Value * for the compare operands were null. But that can never happen. I believe we intended to check for 0 registers here instead. Fixes PR44749.

view details

Michael Liao

commit sha 268e57bd35d7e05928820ad90f325e19e7a809d0

[clang][driver] Remove an unused parameter. NFC. - Group relevant code together.

view details

Nicolai Hähnle

commit sha ba8110161dfb096bbc63039afd87ff6417328f91

AMDGPU/GFX10: Fix NSA reassign pass when operands are undef Summary: Virtual registers that are undef have an empty LiveInterval at this point, which means beginIndex() and endIndex() cannot be used. We only need those indices to determine the range in which to scan for affected other NSA instructions, and undef operands cannot contribute to that range. Reviewers: arsenm, rampitec, mareko Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73831

view details

Brian Gesiak

commit sha d82e993cd34ae6fda1eeb57c1b4d3d2629960664

[ADT] 'PointerUnion::is' returns 'bool' Summary: The return type of 'PointerUnion::is' has been 'int' since it was first added in March 2009, in SVN r67987, or https://github.com/llvm/llvm-project/commit/a9c6de15fb3. The only other change to this member function was a clang-format applied in December 2015, in SVN r256513, or https://github.com/llvm/llvm-project/commit/548a49aacc0. However, since the return value is the result of a `==` comparison, an implicit cast must be made converting the boolean result to an `int`. Change the return type to `bool` to remove the need for such a cast. Test Plan: I ran llvm-project `check-all` under ASAN, no failures were reported (other than obviously unrelated tests that were already failing in ASAN buildbots). Reviewers: gribozavr, gribozavr2, rsmith, bkramer, dblaikie Subscribers: dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73836

view details

Fangrui Song

commit sha 5932f7b8f2c9a5f3640cffa3e99a45923acb7201

[PatchableFunction] Use an empty DebugLoc The current FirstMI.getDebugLoc() is actually null in almost all cases. If it isn't, the generated .loc will be considered initial. The .loc will have the prologue_end flag and terminate the prologue prematurely. Also use an overload of BuildMI that will not prepend PATCHABLE_FUNCTION_ENTRY to a MachineInstr bundle.

view details

Jacques Pienaar

commit sha c4b4c0c47c992e63fc0792d71bea82b6e6dcf0cd

[mlir] Expand shape functions in ShapeInference doc Summary: Start filling in some requirements for the shape function descriptions that will be used to derive shape computations. This requiement part may later be reworked to be part of the "context" section of shape dialect. Without examples this may be a bit too abstract but I hope not (given mappings to existing shape functions). Differential Revision: https://reviews.llvm.org/D73572

view details

Fangrui Song

commit sha ecd2aaee0645e832566850044c4ee5fc5ff76a02

[DebugInfo] Merge DebugInfoFinder::{processDeclare,processValue} into processVariable The two functions are identical.

view details

Fangrui Song

commit sha ba3a1774a900da08cf8312b35e2662d4e06ee4af

[Transforms] Simplify with make_early_inc_range

view details

Lei Zhang

commit sha c18e57ad373ecc4ab5f46ddaade2732880c697de

[mlir][spirv] Add resource limits into target environment

view details

Lei Zhang

commit sha 54fe1528e2556cf2fa74a8e5ae267221aa759fc5

[mlir][spirv] Add dialect-specific attribute for target environment We were using normal dictionary attribute for target environment specification. It becomes cumbersome with more and more fields. This commit changes the modelling to a dialect-specific attribute, where we can have control over its storage and assembly form.

view details

push time in 25 days

push eventantiagainst/llvm-project

Pavel Labath

commit sha b8966de73f1c7c6b7d585ce4f3ed171d121328ae

[lldb] Remove some dead code from SharingPtr.h These classes are not used.

view details

Pavel Labath

commit sha 33f65f393f6652a0974582f7b13a9aa38a9929a3

[lldb] Add a basic unit test for the SharedCluster class

view details

Sanjay Patel

commit sha bc1148e7bcb0448d765aff9078d480ff1905ea1b

[PATCH] D73727: [SLP] drop poison-generating flags for shuffle reduction ops (PR44536) We may calculate reassociable math ops in arbitrary order when creating a shuffle reduction, so there's no guarantee that things like 'nsw' hold on those intermediate values. Drop all poison-generating flags for safety. This change is limited to shuffle reductions because I don't think we have a problem in the general case (where we intersect flags of each scalar op that goes into a vector op), but if there's evidence of other cases being wrong, we can extend this fix to cover those cases. https://bugs.llvm.org/show_bug.cgi?id=44536 Differential Revision: https://reviews.llvm.org/D73727

view details

Matt Arsenault

commit sha 6fb544d1d24c524c715d631d4bc44fd1d0ef7936

AMDGPU/GlobalISel: Combine FMIN_LEGACY/FMAX_LEGACY Try out using combine definition rules. This really should be a post-legalizer combine, but the combiner pass is currently pre-legalize. Most of the target combines are really post-legalize, so we should probably move the pass.

view details

Jan Kratochvil

commit sha 6dd0163502ff8c48195643b2b08a123c495743a0

[lldb] Revert refactorization from: Move non-DWARF code: DWARFUnit -> SymbolFileDWARF Reverting part of commit 789beeeca3cdeecc00cd731c940e52effdd7c7df. Its DWARFDebugInfoEntry::GetDWARFDeclContext() refactorization for return value is now adding it in opposite order.

view details

Matt Arsenault

commit sha b3726ecea4bc96f9fa3218e5be47ea0f2054b0dc

AMDGPU: Fix potential use of undefined value

view details

Jan Kratochvil

commit sha edc3f4f02e54c2ae1067f60f6a0ed6caf5b92ef6

[NFC] [lldb] Unindent DWARFDebugInfoEntry::GetDWARFDeclContext Reduce code indentation level.

view details

Guillaume Chatelet

commit sha 3c89b75f23bb87b8e794114d7550dfcd0bf0af70

[NFC] Introduce a type to model memory operation Summary: This is a first step before changing the types to llvm::Align and introduce functions to ease client code. Reviewers: courbet Subscribers: arsenm, sdardis, nemanjai, jvesely, nhaehnle, hiraditya, kbarton, jrtc27, atanasyan, jsji, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73785

view details

Danilo Carvalho Grael

commit sha 44a4f5fc6a5a28a599ec255ac33846113073cf07

[AArch64][SVE] Add SVE2 mla unpredicated intrinsics. Summary: Add intrinsics for the MLA unpredicated sve2 instructions: - smlalb, smlalt, umlalb, umlalt, smlslb, smlslt, umlslb, umlslt - sqdmlalb, sqdmlalt, sqdmlslb, sqdmlslt - sqdmlalbt, sqdmlslbt Reviewers: efriedma, sdesmalen, cameron.mcinally, c-rhodes, rengolin, kmclaughlin Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, llvm-commits, amehsan Tags: #llvm Differential Revision: https://reviews.llvm.org/D73746

view details

Nathan James

commit sha f99133e853bfd2456b334e70933ec0403ad512d6

- Update .clang-tidy to ignore parameters of main like functions for naming violations in clang and llvm directory Summary: Every call to a main like function in llvm and clang lib violates the naming convention for parameters. This prevents clang-tidy warning on such breaches. Reviewers: alexfh, hokein Reviewed By: hokein Subscribers: merge_guards_bot, aheejin, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D73715

view details

Raphael Isemann

commit sha 6c7efe2eecf1495d2416ebc485025859d9dee74a

[lldb][NFC] Fix expect calls with wrong order of 'substrs' items for D73766 Currently the substrs parameter takes a list of strings that need to be found but the ordering isn't checked. D73766 might change that so this changes a several tests so that the order of the strings in the substrs list is in the order in which they appear in the output.

view details

Jay Foad

commit sha 2a1b5af29911233b50a54df2670b04798d3b4165

[GlobalISel] Tidy up unnecessary calls to createGenericVirtualRegister Summary: As a side effect some redundant copies of constant values are removed by CSEMIRBuilder. Reviewers: aemerson, arsenm, dsanders, aditya_nandakumar Subscribers: sdardis, jvesely, wdng, nhaehnle, rovka, hiraditya, jrtc27, atanasyan, volkan, Petar.Avramovic, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73789

view details

Hiroshi Yamauchi

commit sha ac8da31a0f9895685e34e661d44075f46b559fbe

[PGO][PGSO] Handle MBFIWrapper Some code gen passes use MBFIWrapper to keep track of the frequency of new blocks. This was not taken into account and could lead to incorrect frequencies as MBFI silently returns zero frequency for unknown/new blocks. Add a variant for MBFIWrapper in the PGSO query interface. Depends on D73494.

view details

alex-t

commit sha 5df1ac7846c8ec4004c91d0835e9883f7a0636a4

[AMDGPU] fixed divergence driven shift operations selection Differential Revision: https://reviews.llvm.org/D73483 Reviewers: rampitec

view details

Simon Pilgrim

commit sha 5702dadf6f574aa2a9dbfe1dfa44023cd37fc696

[DAG] Enable ISD::INSERT_SUBVECTOR SimplifyMultipleUseDemandedBits handling This allows SimplifyDemandedBits to call SimplifyMultipleUseDemandedBits to create a simpler ISD::INSERT_SUBVECTOR, which is particularly useful for cases where we're splitting into subvectors anyhow.

view details

Saar Raz

commit sha b7ce85a130789d23c69156f4b899962458d1f05d

[Concepts] Fix isDeclarationSpecifier to detect type-constraints correctly isDeclarationSpecifiers did not handle some cases of placeholder-type-specifiers with type-constraints, causing parsing bugs in abbreviated constructor templates. Add comprehensive handling of type-constraints to isDeclarationSpecifier.

view details

David Blaikie

commit sha 53bb183a9d0b00261194a57aead7926b3fbc396c

Orc: Remove redundant std::move

view details

Fangrui Song

commit sha 84f0a8626e60a6598fce00b2b3a1125678e34f21

[yaml2obj] Internlize DocNum. NFC

view details

Jonas Devlieghere

commit sha 2c19d05ae91e263585cd4633788d83563e67157a

[lldb/Test] Fix substrs order in self.expect for more tests (NFC) Currently the substrs parameter takes a list of strings that need to be found but the ordering isn't checked. D73766 might change that so this changes a several tests so that the order of the strings in the substrs list is in the order in which they appear in the output.

view details

David Blaikie

commit sha d379253ca19b274681b075421612c7430a98c637

Orc: Remove an unnecessary explicit scope (was useful at some point in the past for scoping some error handling that's since been tidied up a bit)

view details

push time in a month

create barnchantiagainst/llvm-project

branch : target-env-attr

created branch time in a month

delete branch antiagainst/llvm-project

delete branch : linalg-reduction

delete time in a month

push eventllvm/llvm-project

Lei Zhang

commit sha df71000d7d5df2eb310ba25ddbfd6ab33bef6c56

[mlir][spirv] Convert linalg.generic for reduction to SPIR-V ops This commit adds a pattern to lower linalg.generic for reduction to spv.GroupNonUniform* ops. Right now this only supports integer reduction on 1-D input memref. Shader entry point ABI is queried to make sure that the input memref's shape matches the local workgroup's invocation configuration. This makes sure that the workload fits in one local workgroup so that we can leverage SPIR-V group non-uniform operations. linglg.generic is a structured op that preserves the right level of information. It is easier to recognize reduction at this level than performing analysis on loops. This commit also exposes `getElementPtr` in SPIRVLowering.h given that it's a generally useful utility function. Differential Revision: https://reviews.llvm.org/D73437

view details

push time in a month

issue commentgoogle/iree

Integrate new Symbol DCE infra in MLIR to IREE

I think all those unused vm.imports can be trimmed away? Certain unused global variables after optimization, too.

stellaraccident

comment created time in a month

push eventllvm/llvm-project

Denis Khalikov

commit sha 4801522432a4dd6aeebf2b461744891953f7fd1d

[mlir][spirv] Add GroupNonUniform min and max operations. Add GroupNonUniform atihtmetic operations: FMax, FMin, SMax, SMin, UMax, UMin. Differential Revision: https://reviews.llvm.org/D73563

view details

push time in a month

push eventllvm/llvm-project

Denis Khalikov

commit sha 731b140a52b0d9b5af8702bb6d0ba3ca3c24c0dd

[mlir][spirv] Add GroupNonUniform arithmetic operations. Add GroupNonUniform arithmetic operations: FAdd, FMul, IMul. Unify parser, printer, verifier for GroupNonUniform arithmetic operations. Differential Revision: https://reviews.llvm.org/D73491

view details

push time in a month

push eventllvm/llvm-project

Lei Zhang

commit sha 29e411b3d6a4b80c21891fc311168d8a651693f8

[mlir] Expose getNearestSymbolTable as SymbolTable class method This is a generally useful utility function for interacting with symbol tables. Differential Revision: https://reviews.llvm.org/D73433

view details

push time in a month

push eventantiagainst/llvm-project

Lei Zhang

commit sha 823c22634ed3fd38a5c866b912897a44884a07a8

[mlir][spirv] Convert linalg.generic for reduction to SPIR-V ops This commit adds a pattern to lower linalg.generic for reduction to spv.GroupNonUniform* ops. Right now this only supports integer reduction on 1-D input memref. Shader entry point ABI is queried to make sure that the input memref's shape matches the local workgroup's invocation configuration. This makes sure that the workload fits in one local workgroup so that we can leverage SPIR-V group non-uniform operations. linglg.generic is a structured op that preserves the right level of information. It is easier to recognize reduction at this level than performing analysis on loops. This commit also exposes `getElementPtr` in SPIRVLowering.h given that it's a generally useful utility function.

view details

push time in a month

push eventantiagainst/llvm-project

Lei Zhang

commit sha ed32d5acf7971d867c5e5c98ed5b647265b1852e

[mlir] Linalg to SPIR-V conversion

view details

push time in a month

push eventantiagainst/llvm-project

Lei Zhang

commit sha e1207a8f10fc58b5862495f9d0cd7b9ed3d4e16d

[mlir] Linalg to SPIR-V conversion

view details

push time in a month

push eventantiagainst/llvm-project

Lei Zhang

commit sha 7710c16977c0da0c012d9faee591f14688f15f98

[mlir] Linalg to SPIR-V conversion

view details

push time in a month

push eventantiagainst/llvm-project

Lei Zhang

commit sha fa03ce34e8f8af81733f6dbe4c424dce4804ece8

[mlir] Linalg to SPIR-V conversion

view details

push time in a month

push eventantiagainst/llvm-project

Lei Zhang

commit sha ce9e32d1b75eb71dae340b4b71355a891c651b69

[mlir] Linalg to SPIR-V conversion

view details

push time in a month

push eventantiagainst/llvm-project

Lei Zhang

commit sha 7ac19029397ac9b90763f6a790ed721fad1260fc

[mlir] Linalg to SPIR-V conversion

view details

push time in a month

delete branch antiagainst/llvm-project

delete branch : reduction

delete time in a month

create barnchantiagainst/llvm-project

branch : linalg-reduction

created branch time in a month

delete branch antiagainst/llvm-project

delete branch : flexible-op-loc

delete time in a month

delete branch antiagainst/llvm-project

delete branch : add-reduction-op

delete time in a month

push eventllvm/llvm-project

Lei Zhang

commit sha 8d6884a15e86419c51ba456f8b6f5223696800a1

[mlir][spirv] Create builtin variable in nearest symbol table This commit changes the logic of `getBuiltinVariableValue` to get or create the builtin variable in the nearest symbol table. This will allow us to use this function in other partial conversion cases where we haven't created the spv.module yet. Differential Revision: https://reviews.llvm.org/D73416

view details

push time in a month

push eventllvm/llvm-project

Lei Zhang

commit sha 09f9deaff206177c9958acfe2c387b40bd6c6abf

[mlir][spirv] NFC: simplify load/store builder call sites This commit introduces default values for load/store builders to simplify builder call sites. Differential Revision: https://reviews.llvm.org/D73419

view details

push time in a month

push eventllvm/llvm-project

Lei Zhang

commit sha 91d6655a296f847d6b8d1f11e256b194b7f0d3f9

[mlir][spirv] NFC: expose builtin func op conversion pattern This commit exposes the func op conversion pattern via a new `populateBuiltinFuncToSPIRVPatterns` function from the standard to SPIR-V conversion passs. This is structurally better given that func op belongs to the builtin dialect. More importantly, this makes the pattern reusable to other dialect to SPIR-V dialect conversion as other dialect can well adopt builtin func op instead of having its own. Besides, it's very common to use func ops as test wrappers in lit tests, so test passes will need to handle func ops too. Differential Revision: https://reviews.llvm.org/D73421

view details

push time in a month

push eventllvm/llvm-project

Lei Zhang

commit sha ae21e37eb43ef026ac523891bdeae38e5934f469

[mlir][spirv] Add spv.GroupNonUniformElect and spv.GroupNonUniformIAdd Differential Revision: https://reviews.llvm.org/D73349

view details

Lei Zhang

commit sha 60d541e1b9dc7217a0744ede6a582c46795091fc

[mlir][spirv] Relax verification to allow flexible placement Thus far certain SPIR-V ops have been required to be in spv.module. While this provides strong verification to catch unexpected errors, it's quite rigid and makes progressive lowering difficult. Sometimes we would like to partially lower ops from other dialects, which may involve creating ops like global variables that should be placed in other module-like ops. So this commit relaxes the requirement of such SPIR-V ops' scope to module-like ops. Similarly for function- like ops. Differential Revision: https://reviews.llvm.org/D73415

view details

push time in a month

create barnchantiagainst/llvm-project

branch : target-env-in-type-converter

created branch time in a month

delete branch antiagainst/llvm-project

delete branch : fix-strattr

delete time in a month

create barnchantiagainst/llvm-project

branch : string-extras

created branch time in a month

delete branch antiagainst/llvm-project

delete branch : spirv-availability

delete time in a month

push eventantiagainst/llvm-project

Lei Zhang

commit sha 37dfc64687a01db1d6e7b362231b0c698d26e257

Revert "[mlir][ods] Support dialect specific content emission via hooks" This reverts commit 397215cc309df1171a198b11cab3b241db9441db because this feature needs more discussion.

view details

Lei Zhang

commit sha 267483ac709b85906e223c3cac447538a115b4c4

[mlir][spirv] Support implied extensions and capabilities In SPIR-V, when a new version is introduced, it is possible some existing extensions will be incorporated into it so that it becomes implicitly declared if targeting the new version. This affects conversion target specification because we need to take this into account when allowing what extensions to use. For a capability, it may also implies some other capabilities, for example, the `Shader` capability implies `Matrix` the capability. This should also be taken into consideration when preparing the conversion target: when we specify an capability is allowed, all its recursively implied capabilities are also allowed. This commit adds utility functions to query implied extensions for a given version and implied capabilities for a given capability and updated SPIRVConversionTarget to use them. This commit also fixes a bug in availability spec. When a symbol (op or enum case) can be enabled by an extension, we should drop it's minimal version requirement. Being enabled by an extension naturally means the symbol can be used by *any* SPIR-V version as long as the extension is supported. The grammar still encodes the 'version' field for such cases, but it should be interpreted as a different way: rather than meaning a minimal version requirement, it says the symbol becomes core at that specific version. Differential Revision: https://reviews.llvm.org/D72765

view details

Sam Parker

commit sha 42350cd893a9cf6c199b17441dc2ba526c7cca71

[ARM][MVE] Tail Predicate IsSafeToRemove Introduce a method to walk through use-def chains to decide whether it's possible to remove a given instruction and its users. These instructions are then stored in a set until the end of the transform when they're erased. This is now used to perform checks on the iteration count (LoopDec chain), element count (VCTP chain) and the possibly redundant iteration count. As well as being able to remove chains of instructions, we know also check that the sub feeding the vctp is producing the expected value. Differential Revision: https://reviews.llvm.org/D71837

view details

Sanjay Patel

commit sha ffd3e1607db232c362fa5ad40e5cf2afa400b304

[IR] add unit test for Constant::isElementWiseEqual() for undef corner case; NFC

view details

Sanjay Patel

commit sha c1e159ef6eb0095b78d08594f02f511c69d9a64b

[IR] fix Constant::isElementWiseEqual() to allow for all undef elements compare We could argue that match() should be more flexible here, but I'm not sure what impact that would have on existing code.

view details

Logan Smith

commit sha 42a0355816d3bc125d59cbd07052c8886e78ca86

Add `bugprone-reserved-identifier` This patch adds bugprone-reserved-identifier, which flags uses of __names _Like ::_this, which are reserved for the implementation. The check can optionally be inverted, i.e. configured to flag any names that are _not_ reserved, which may be useful for e.g. standard library implementors.

view details

LLVM GN Syncbot

commit sha 73db4f6f11f0012a6bca0431b84eaa3afb9364c9

[gn build] Port 42a0355816d

view details

Simon Pilgrim

commit sha 1dc2f257903d3fcb323425eefb5d9b57a0cbdd96

[SelectionDAG] ComputeKnownBits - assert we're computing the 0'th (difference) result for the SUB/SUBC cases Matches what we already do for the ADD/ADDC/ADDE case.

view details

Simon Pilgrim

commit sha 8eb4d25a0943bce6e8a4859825dce4f67a4f6384

[X86] Split X87/SSE compare classes into WriteFCom + WriteFComX Most X87 compare instructions write to the X87 status word, while the SSE (U)COMI compares write to rFLAGS. These are often handled very differently on CPUs (e.g. rFLAGS outputs typically involve a fpu2gpr transfer), and we shouldn't be grouping all these instructions behind a single class - so this patch splits off the SSE compares into a new WriteFComX class (and currently keeps the same behaviours). If there's a need to distinguish between X87 instructions more closely we can investigate that in the future, but as we don't handle any of the X87 side effects at the moment its unlikely to have any notable effect.

view details

Nathan

commit sha f9c46229e4ac29053747c96e08c574c6c48d544b

[clang-tidy] Disable Checks on If constexpr statements in template Instantiations for BugproneBranchClone and ReadabilityBracesAroundStatements Summary: fixes [[ https://bugs.llvm.org/show_bug.cgi?id=32203 | readability-braces-around-statements broken for if constexpr]] and [[ https://bugs.llvm.org/show_bug.cgi?id=44229 | bugprone-branch-clone false positive with template functions and constexpr ]] by disabling the relevant checks on if constexpr statements while inside an instantiated template. This is due to how the else branch of an if constexpr statement is folded away to a null statement if the condition evaluates to false Reviewers: alexfh, hokein, aaron.ballman, xazax.hun Reviewed By: aaron.ballman, xazax.hun Subscribers: rnkovacs, JonasToth, Jim, lebedev.ri, xazax.hun, cfe-commits Tags: #clang-tools-extra, #clang Differential Revision: https://reviews.llvm.org/D71980

view details

Aaron Ballman

commit sha bcda877b43093459dc52747d35abe0019f8e22e0

Fix a compile error to get bots back to green. Fixes http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/13716

view details

Aaron Ballman

commit sha 7f4e744b90ec7a5cd8067cac7032ef36607aa4b8

Another speculative fix for the Windows bots. Hopefully fixes: http://45.33.8.238/win/6040/step_4.txt

view details

Krzysztof Parzyszek

commit sha 60aed6a4e5d936b87f5bed0c983be0bab55b1355

[Hexagon] Add prev65 subtarget feature There was a change to trap1 instruction between v62 and v65. This feature will allow the assembler/disassembler to handle different variants depending on the CPU version.

view details

Krzysztof Parzyszek

commit sha 2d5bfc6eb15f28d87347aca95f05dfb25318d013

[Hexagon] Improve HVX version checks

view details

Sanjay Patel

commit sha 43f60e614a3d30e1ae805996d93b1b433a39cf9d

[x86] try harder to form 256-bit unpck* This is another part of a problem noted in PR42024: https://bugs.llvm.org/show_bug.cgi?id=42024 The AVX2 code may use awkward 256-bit shuffles vs. the AVX code that gets split into the expected 128-bit unpack instructions. We have to be selective in matching the types where we try to do this though. Otherwise, we can end up with more instructions (in the case of v8x32/v4x64). Differential Revision: https://reviews.llvm.org/D72575

view details

Simon Pilgrim

commit sha b6437b352db9d96ceb5bd7243e1cf0200e4bae6d

Fix gcc9 "moving a local object in a return statement prevents copy elision" Wpessimizing-move warnings.

view details

Simon Pilgrim

commit sha ff3fe145fe48646d24371d3fe438fd03b0a6413f

Fix gcc9 "moving a local object in a return statement prevents copy elision" Wpessimizing-move warning.

view details

Simon Pilgrim

commit sha 88cdeaa5313a399f13e7cb5bd8e2a9505436ef8b

Revert rGff3fe145fe48 "Fix gcc9 "moving a local object in a return statement prevents copy elision" Wpessimizing-move warning." Fix buildbots

view details

Simon Pilgrim

commit sha d1b32f328e4a363a0883cdc9ca92d0df3ce3fbf3

Revert rGb6437b352db9 - "Fix gcc9 "moving a local object in a return statement prevents copy elision" Wpessimizing-move warnings." Fix buildbots

view details

Matt Arsenault

commit sha 886f9071c63848e90fe0c2f3ad98a0a71aeffcd4

AMDGPU: Don't assert on a16 images on targets without FeatureR128A16 Currently the lowering for i16 image coordinates asserts on gfx10. I'm somewhat confused by this though. The feature is missing from the gfx10 feature lists, but the a16 bit appears to be present in the manual for MIMG instructions.

view details

push time in a month

create barnchantiagainst/llvm-project

branch : use-ods-hook

created branch time in a month

push eventantiagainst/llvm-project

Lei Zhang

commit sha 4cd4278f1b84bab91e8cf34ecf43da9da999824b

[mlir][spirv] Add spv.GroupNonUniformElect and spv.GroupNonUniformIAdd

view details

push time in a month

create barnchantiagainst/llvm-project

branch : flexible-op-loc

created branch time in a month

push eventantiagainst/llvm-project

Lei Zhang

commit sha 0ed3d1fbb1136e288cfca5d79ae08efc2546dddf

Prototyping Linalg to SPIR-V lowering

view details

push time in a month

delete branch antiagainst/llvm-project

delete branch : fix-strattr-single-commit

delete time in a month

issue commenttensorflow/mlir

[spirv] [tracking] SPIR-V lowering

@denis0x0D: yes it is. the task means to have some recommended pipeline to go from linalg to spv in MLIR core given that from linalg all the components are in MLIR repo. Mahesh and I will be working on this recently to flesh out more details for the pipeline.

BTW, I've https://reviews.llvm.org/D73349 to add two more GroupNonUniform* ops. It would be awesome if you can help to flesh out more GroupNonUniform* arithmetic ops after the above CL lands! (I'd assume the ODS definition and parsing/printing/verification code can be reused largely there.)

antiagainst

comment created time in a month

create barnchantiagainst/llvm-project

branch : add-reduction-op

created branch time in a month

push eventantiagainst/llvm-project

Lei Zhang

commit sha 22bef4db17e5d7bfceb5083cd3093dc417071674

[mlir][spirv] Add spv.GroupNonUniformElect and spv.GroupNonUniformIAdd

view details

Lei Zhang

commit sha 671614803b52933218e1d579d1b8ee31528450d7

Prototyping Linalg to SPIR-V lowering

view details

push time in a month

push eventantiagainst/llvm-project

Lei Zhang

commit sha 13935eff01fbad71645744474966875bf9f96d75

More stuff

view details

push time in a month

push eventantiagainst/llvm-project

Lei Zhang

commit sha f08cc1fa413e5a9fdcb2be65dcecc621809a3722

Add GroupOperation

view details

push time in a month

create barnchantiagainst/llvm-project

branch : reduction

created branch time in a month

create barnchantiagainst/Dash-User-Contributions

branch : vulkan-1.2.132

created branch time in a month

push eventllvm/llvm-project

Denis Khalikov

commit sha 4460cb5bcd739156c1dd67110c3456ba8322a76e

[mlir][spirv] Add lowering for composite std.constant. Add lowering for constant operation with ranked tensor type to spv.constant with spv.array type. Differential Revision: https://reviews.llvm.org/D73022

view details

push time in a month

push eventllvm/llvm-project

Lei Zhang

commit sha f2dc179d686a77de8daa1b31c8984b39823e9a3d

[mlir][ods] Fix StringRef initialization in builders For the generated builder taking in unwrapped attribute values, if the argument is a string, we should avoid wrapping it in quotes; otherwise we are always setting the string attribute to contain the string argument's name. The quotes come from StrinAttr's `constBuilderCall`, which is reasonable for string literals, but not function arguments containing strings. Differential Revision: https://reviews.llvm.org/D72977

view details

push time in a month

push eventllvm/llvm-project

Denis Khalikov

commit sha 3023352a7d0991c2ed7c0ecca9b5fbf8501b6af2

[mlir][spirv] Simplify scalar type size calculation. Simplify scalar type size calculation and reject boolean memrefs. Differential Revision: https://reviews.llvm.org/D72999

view details

push time in a month

pull request commentKhronosGroup/SPIRV-Headers

Add 'aliases' field to show symbol aliasing relationship

Based on my observation, the grammar is inconsistent as for how it handles such "duplicated" entries.

  • Some "duplicated" entries have exactly the same content except the symbol suffix, e.g., OpDecorateString vs OpDecorateString.
  • Some core entries have more extensions than the entries for an extension, e.g., PhysicalStorageBufferAddresses vs PhysicalStorageBufferAddressesEXT.
  • Some core entries do not have any extensions while their extension counterpart has, e.g., MakeVisible vs MakeVisibleKHR.

So IMO this relationship is already broken; therefore downstream tooling is already likely in a confused or subtly broken state that needs to be fixed.

I can certainly put up a PR to only strictly add aliases field. But itself solely I don't see how it can help to remedy the problem. We need to fix this issue anyway; be it a few commits later or now there is gonna to be a breaking change. If we just add the aliases field but do not unify the content into the canonical entry in hoping of letting tooling to "catch up", downstream tooling actually needs to throw in more logic to analyze the relationship (which one of the above three cases is it? From which entry should I get what information?) and handle them. Note that this logic will be a one-off effort that will be thrown away later when we introduce the real breaking change: tooling will be forced to change again. So I don't quite see why that is preferrable. Hopefully this explains why I bundle adding the aliases field together with unifying the content into the canonical entries. But I might miss something; happy to hear what you think. :)

antiagainst

comment created time in a month

PR closed KhronosGroup/SPIRV-Headers

Fix Vulkan memory model's extension specification

VulkanKHR becomes Vulkan since SPIR-V 1.5; so Vulkan is just a symbol duplicate of VulkanKHR. It should have all properties like VulkanKHR, including the enabling extension.

+1 -0

1 comment

1 changed file

antiagainst

pr closed time in a month

pull request commentKhronosGroup/SPIRV-Headers

Fix Vulkan memory model's extension specification

Closing this one in favor of #138 and #139.

antiagainst

comment created time in a month

Pull request review commentKhronosGroup/SPIRV-Headers

Fix Vulkan memory model's extension specification

           "enumerant" : "Vulkan",           "value" : 3,           "capabilities" : [ "VulkanMemoryModel" ],+          "extensions" : [ "SPV_KHR_vulkan_memory_model" ],

Okay, I've created #138 to introduce aliases and #139 to remove duplicated cases. PTAL!

antiagainst

comment created time in a month

PR opened KhronosGroup/SPIRV-Headers

Remove duplicated cases in favor of 'aliases' fields

This is built on top of #138: the first commit is from #138, so only the second one is interesting here.

+55 -331

0 comment

1 changed file

pr created time in a month

PR opened KhronosGroup/SPIRV-Headers

Add 'aliases' field to show symbol aliasing relationship

It's common to pull symbols first introduced in extensions to the core spec when SPIR-V version bumps. For such cases, the underlying value remains the same; it's just that we introduce a new symbol (without extension suffix) for it. Thus far we have been creating a entire new case for such cases incorporated into core. It's cluttering the grammar and complicates downstream consumers because downstream consumers need to understand the relationship. It's also quite confusing and error-prone: when introducing a new symbol, it can have different fields than the original one, either meaning subtle differences or caused by oversight.

Instead, this commit introduces an 'aliases' field to properly show the relationship between symbols. Other fields describing the value, including 'version', 'extensions', etc., are cleaned up to make sure the canonical symbol collects all the information from duplicated cases. Now if a value has both 'version' and 'extensions', it means the value is available either starting from the given version, or with any of the extensions.

+82 -1

0 comment

1 changed file

pr created time in a month

create barnchantiagainst/SPIRV-Headers

branch : remove-alias

created branch time in a month

create barnchantiagainst/SPIRV-Headers

branch : alias

created branch time in a month

push eventantiagainst/llvm-project

Eric Astor

commit sha 0eeddf1ac59066567a096ad95344f43c38e6b04f

Revert "[ms] [llvm-ml] Add placeholder for llvm-ml, based on llvm-mc" This reverts commit 22af2cbefc86dbef6e11ddaa96a08956e0baf22b, due to breakages on ARM platforms.

view details

Lei Zhang

commit sha 932c2a548241b7df799f7676ca0cdca59f84bd27

[mlir][ods] Fix StringRef initialization in builders For the generated builder taking in unwrapped attribute values, if the argument is a string, we should avoid wrapping it in quotes; otherwise we are always setting the string attribute to contain the string argument's name. The quotes come from StrinAttr's `constBuilderCall`, which is reasonable for string literals, but not function arguments containing strings.

view details

push time in a month

push eventantiagainst/llvm-project

Lei Zhang

commit sha 0dc3271fb60abb8f59ffe8b6128ed55e9a459aa8

[mlir][ods] Fix StringRef initialization in builders For the generated builder taking in unwrapped attribute values, if the argument is a string, we should avoid wrapping it in quotes; otherwise we are always setting the string attribute to contain the string argument's name. The quotes come from StrinAttr's `constBuilderCall`, which is reasonable for string literals, but not function arguments containing strings.

view details

push time in a month

delete branch antiagainst/llvm-project

delete branch : spv-target

delete time in a month

create barnchantiagainst/llvm-project

branch : fix-strattr-single-commit

created branch time in a month

push eventantiagainst/llvm-project

Lei Zhang

commit sha 265250dad26bb1284bbabecf1e5c353349d191f4

[mlir] NFC: move implementations into cpp file for StringExtras.h

view details

Lei Zhang

commit sha 7d7821a37adb5ef00fdb7f6a9623b9dbff24f4d2

[mlir] Add a new splitString utility in StringExtras.h llvm::SplitString takes a delimiter string but treated it as a bag of characters. Sometimes it's useful to treat the delimiter string as a whole when splitting. So added this utility.

view details

Lei Zhang

commit sha 4805caec1d10470759e7a24ecfb20ac5713790ed

[mlir][ods] Fix StringRef initialization in builders For the generated builder taking in unwrapped attribute values, if the argument is a string, we should avoid wrapping it in quotes; otherwise we are always setting the string attribute to contain the string argument's name. The quotes come from StrinAttr's `constBuilderCall`, which is reasonable for string literals, but not function arguments containing strings.

view details

push time in a month

push eventantiagainst/llvm-project

Nicolas Vasilache

commit sha 64c4dcb5eef20fca9e125148a74e529643696e2b

[mlir][Linalg] Extend linalg vectorization to MatmulOp Summary: This is a simple extension to allow vectorization to work not only on GenericLinalgOp but more generally across named ops too. For now, this still only vectorizes matmul-like ops but is a step towards more generic vectorization of Linalg ops. Reviewers: ftynse Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72942

view details

Jonas Devlieghere

commit sha a93aa5347641159aa0d2d48dda9e1a51b2273462

[lldb/Docs] Fix formatting for the variable formatting page

view details

Sergej Jaskiewicz

commit sha 049c437c40c46a81257f63c03522556217271b87

[libcxx] Introduce LinuxRemoteTI for remote testing Summary: This patch adds a new target info object called LinuxRemoteTI. Unlike LinuxLocalTI, which asks the host system about various things like available locales, distribution name etc. which don't make sense if we're testing on a remote board, LinuxRemoteTI uses SSHExecutor to get information from the target system. Reviewers: jroelofs, ldionne, bcraig, EricWF, danalbert, mclow.lists Reviewed By: jroelofs Subscribers: christof, dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D72847

view details

Sergej Jaskiewicz

commit sha 383ff4eac1db8313ec522ba3ac0903aaeda7ff63

[CMake] Use LinuxRemoteTI instead of LinuxLocalTI in CrossWinToARMLinux cmake cache Summary: Depends on D72847 Reviewers: vvereschaka, aorlov, andreil99 Reviewed By: vvereschaka Subscribers: mgorny, kristof.beyls, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D72850

view details

Petr Hosek

commit sha d3db13af7e5c01632fbf28149a2d4f9c4841aeba

[profile] Support counter relocation at runtime This is an alternative to the continous mode that was implemented in D68351. This mode relies on padding and the ability to mmap a file over the existing mapping which is generally only available on POSIX systems and isn't suitable for other platforms. This change instead introduces the ability to relocate counters at runtime using a level of indirection. On every counter access, we add a bias to the counter address. This bias is stored in a symbol that's provided by the profile runtime and is initially set to zero, meaning no relocation. The runtime can mmap the profile into memory at abitrary location, and set bias to the offset between the original and the new counter location, at which point every subsequent counter access will be to the new location, which allows updating profile directly akin to the continous mode. The advantage of this implementation is that doesn't require any special OS support. The disadvantage is the extra overhead due to additional instructions required for each counter access (overhead both in terms of binary size and performance) plus duplication of counters (i.e. one copy in the binary itself and another copy that's mmapped). Differential Revision: https://reviews.llvm.org/D69740

view details

Peter Collingbourne

commit sha 9b9c68a2d6adea397e6bc22b29d6d81bb997a256

hwasan: Remove dead code. NFCI. Differential Revision: https://reviews.llvm.org/D72896

view details

James Nagurne

commit sha 128e1ebd931027c58065f0c0dc83c0b6a1c53a83

[CMake] Prefer multi-target variables over generic target variables in runtimes build Runtimes variables in a multi-target environment are defined like: RUNTIMES_target_VARIABLE_NAME RUNTIMES_target+multi_VARIABLE_NAME In my case, I have a downstream runtimes cache that does the following: set(RUNTIMES_${target}+except_LIBCXXABI_ENABLE_EXCEPTIONS ON CACHE BOOL "") set(RUNTIMES_${target}_LIBCXX_ENABLE_EXCEPTIONS OFF CACHE BOOL "") I found that I was always getting the 'target' variable value (OFF) in my 'target+except' build, which was unexpected. This behavior was caused by the loop in llvm/runtimes/CMakeLists.txt that runs through all variable names, adding '-DVARIABLE_NAME=' options to the subsequent external project's cmake command. The issue is that the loop does a single pass, such that if the 'target' value appears in the cache after the 'target+except' value, the 'target' value will take precedence. I suggest in my change here that the more specific 'target+except' value should take precedence always, without relying on CMake cache ordering. Differential Revision: https://reviews.llvm.org/D71570 Patch By: JamesNagurne

view details

Alina Sbirlea

commit sha 9f6c6ee6b9b6409c6cb2d200553815cec7f74cc3

[MemDepAnalysis/VNCoercion] Move static method to its only use. [NFCI] Static method MemoryDependenceResults::getLoadLoadClobberFullWidthSize does not have or use any info specific to MemoryDependenceResults. Move it to its only user: VNCoercion.

view details

Evgenii Stepanov

commit sha d081962dead08ef0982081e78d679dd609947ca5

Merge memtag instructions with adjacent stack slots. Summary: Detect a run of memory tagging instructions for adjacent stack frame slots, and replace them with a shorter instruction sequence * replace STG + STG with ST2G * replace STGloop + STGloop with STGloop This code needs to run when stack slot offsets are already known, but before FrameIndex operands in STG instructions are eliminated; that's the reason for the new hook in PrologueEpilogue. This change modifies STGloop and STZGloop pseudos to take the size as an immediate integer operand, and adds _untied variants of those pseudos that are allowed to take the base address as a FI operand. This is needed to simplify recognizing an STGloop instruction as operating on a stack slot post-regalloc. This improves memtag code size by ~0.25%, and it looks like an additional ~0.1% is possible by rearranging the stack frame such that consecutive STG instructions reference adjacent slots (patch pending). Reviewers: pcc, ostannard Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D70286

view details

Nico Weber

commit sha 6afa0e88e32558c115e72797baf57b86cfa37e07

[gn build] fix build after 22af2cbefc

view details

LLVM GN Syncbot

commit sha 49dc3a94671d0b3a995381d5b00dc89366ac0481

[gn build] Port d3db13af7e5

view details

Richard Smith

commit sha a42fd84cff265b7e9faa3fe42885ee171393e4db

Remove redundant CXXScopeSpec from TemplateIdAnnotation. A TemplateIdAnnotation represents only a template-id, not a nested-name-specifier plus a template-id. Don't make a redundant copy of the CXXScopeSpec and store it on the template-id annotation. This slightly improves error recovery by more properly handling the case where we would form an invalid CXXScopeSpec while parsing a typename specifier, instead of accidentally putting the token stream into a broken "annot_template_id with a scope specifier, but with no preceding annot_cxxscope token" state.

view details

Nico Weber

commit sha 1d568bf9605c05ff088b244d7894ab2d88da9811

Remove AllTargetsAsmPrinters It's been an empty target since r360498 and friends (`git log --grep='Move InstPrinter files to MCTargetDesc.' llvm/lib/Target`), but due to hwo the way these targets are structured it was silently an empty target without anyone noticing. No behavior change.

view details

Siva Chandra Reddy

commit sha c7453fad0625be37f4b885c6cc2341fb12a66395

[libc] Replace the use of gtest with a new light weight unittest framework. Header files included wrongly using <...> are now included using the internal path names as the new unittest framework allows us to do so. Reviewers: phosek, abrachet Differential Revision: https://reviews.llvm.org/D72743

view details

Reid Kleckner

commit sha 423e3db6a8202c57f1b7da52c35a34b3562602b3

Remove unneeded FoldingSet.h include from Attributes.h Avoids 637 extra FoldingSet.h and Allocator.h includes. FoldingSet.h needs Allocator.h, which is relatively expensive.

view details

Matt Arsenault

commit sha ec9628318d797bfe036aca314d58665dd93b364f

AMDGPU/GlobalISel: Select DS append/consume

view details

Matt Arsenault

commit sha 592de0009f6482fbf033ef87d147aab13fcce78c

AMDGPU/GlobalISel: Select llvm.amdgcn.update.dpp The existing test is overly reliant on -mattr=-flat-for-global, and some missing optimizations to re-use.

view details

Matt Arsenault

commit sha a4451d88ee456304c26d552749aea6a7f5154bde

Consolidate internal denormal flushing controls Currently there are 4 different mechanisms for controlling denormal flushing behavior, and about as many equivalent frontend controls. - AMDGPU uses the fp32-denormals and fp64-f16-denormals subtarget features - NVPTX uses the nvptx-f32ftz attribute - ARM directly uses the denormal-fp-math attribute - Other targets indirectly use denormal-fp-math in one DAGCombine - cl-denorms-are-zero has a corresponding denorms-are-zero attribute AMDGPU wants a distinct control for f32 flushing from f16/f64, and as far as I can tell the same is true for NVPTX (based on the attribute name). Work on consolidating these into the denormal-fp-math attribute, and a new type specific denormal-fp-math-f32 variant. Only ARM seems to support the two different flush modes, so this is overkill for the other use cases. Ideally we would error on the unsupported positive-zero mode on other targets from somewhere. Move the logic for selecting the flush mode into the compiler driver, instead of handling it in cc1. denormal-fp-math/denormal-fp-math-f32 are now both cc1 flags, but denormal-fp-math-f32 is not yet exposed as a user flag. -cl-denorms-are-zero, -fcuda-flush-denormals-to-zero and -fno-cuda-flush-denormals-to-zero will be mapped to -fp-denormal-math-f32=ieee or preserve-sign rather than the old attributes. Stop emitting the denorms-are-zero attribute for the OpenCL flag. It has no in-tree users. The meaning would also be target dependent, such as the AMDGPU choice to treat this as only meaning allow flushing of f32 and not f16 or f64. The naming is also potentially confusing, since DAZ in other contexts refers to instructions implicitly treating input denormals as zero, not necessarily flushing output denormals to zero. This also does not attempt to change the behavior for the current attribute. The LangRef now states that the default is ieee behavior, but this is inaccurate for the current implementation. The clang handling is slightly hacky to avoid touching the existing denormal-fp-math uses. Fixing this will be left for a future patch. AMDGPU is still using the subtarget feature to control the denormal mode, but the new attribute are now emitted. A future change will switch this and remove the subtarget features.

view details

Matt Arsenault

commit sha df7900e2182467fe11637c657d7d9fa9d9b61f48

TableGen/GlobalISel: Don't check exact intrinsic opcode value

view details

Frank Laub

commit sha ee2de95507a1fc81069c9b521be891abfe1379fb

[MLIR] LLVM dialect: modernize and cleanups Summary: Modernize some of the existing custom parsing code in the LLVM dialect. While this reduces some boilerplate code, it also reduces the precision of the diagnostic error messges. Reviewers: ftynse, nicolasvasilache, rriddle Reviewed By: rriddle Subscribers: merge_guards_bot, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72967

view details

push time in a month

create barnchantiagainst/llvm-project

branch : fix-strattr

created branch time in a month

push eventllvm/llvm-project

Lei Zhang

commit sha 927f8f40a4c27bd47bca9a8d64786ca8b22fa38d

[mlir][spirv] Explicitly construct ArrayRef from static array Again for pleasing GCC 5.

view details

push time in a month

push eventllvm/llvm-project

Lei Zhang

commit sha f35b5a729705ec371780f703bfc21470163ad5ce

[mlir][spirv] Explicitly construct ArrayRef from array Hopefully this pleases GCC 5.

view details

push time in a month

push eventllvm/llvm-project

Lei Zhang

commit sha 859e379ffbbb40302926940b8c87fb7a99931612

[mlir][spirv] Explicitly set the size of static arrays

view details

push time in a month

more