mirror of https://github.com/llvm/circt.git
![]() This picked up a few breaking changes. https://github.com/llvm/llvm-project/commit/327d6270 This added new required methods to CallOpInterface and CallableOpInterface. These methods are related to arrays of dictionary attributes for each argument and result, and are normally implemented upstream by simply defining the right arg_attrs and res_attrs arguments on the operations. This allows some of the common utilities upstream to work with the attributes. However, we seem to have actually moved away from arrays of per-argument or per-result attributes in most cases, and handle this ourselves when we want to. I opted to stub out the methods in the tablegen definitions of our operations, rather than adding optional attributes and setting them to null in builders and builder callsites like was done upstream. There were also some accompanying name changes to a couple helper functions, which we were able to simply apply without needing to add new optional attributes everywhere. https://github.com/llvm/llvm-project/commit/e84f6b6a This updated several LLVM dialect helper functions related to lookupOrCreateFn to return FailureOr<LLVM::LLVMFuncOp>. In most cases, we simply check for the error case and return it or signal pass failure. There was one function in the SMT to Z3 conversion that assumes this always succeeds and in this function I made an assertion rather than changing the function to also potentially return failure. https://github.com/llvm/llvm-project/commit/f4e3b878 Looks like upstream is simply moving from undef to poison in many cases, so this required us to update one test case. |
||
---|---|---|
.. | ||
lower-arc-to-llvm.mlir |