1. [builtins][ARM] Check __ARM_FP instead of __VFP_FP__. (details)
  2. [mlir][OpFormatGen] Add support for optional enum attributes (details)
  3. [mlir][IR] Move the storage for results to before the Operation instead of after. (details)
  4. [RISCV] Formatting for easier reading (NFC) (details)
Commit 24333481cb23389516d47ef08e967ce833ec82a3 by chaosdefinition
[builtins][ARM] Check __ARM_FP instead of __VFP_FP__.

This patch fixes builtins' CMakeLists.txt and their VFP tests to check
the standard macro defined in the ACLE for VFP support. It also enables
the tests to be built and run for single-precision-only targets while
builtins were built with double-precision support.

Differential revision:
The file was modifiedcompiler-rt/test/builtins/Unit/mulsf3vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/floatunssisfvfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/floatsisfvfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/ltsf2vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/gtdf2vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/gesf2vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/unorddf2vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/fixsfsivfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/nedf2vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/gtsf2vfp_test.c (diff)
The file was modifiedcompiler-rt/lib/builtins/CMakeLists.txt (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/fixunssfsivfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/unordsf2vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/adddf3vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/fixdfsivfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/lesf2vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/eqsf2vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/negdf2vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/nesf2vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/subsf3vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/addsf3vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/extendsfdf2vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/negsf2vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/floatunssidfvfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/divdf3vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/eqdf2vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/fixunsdfsivfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/muldf3vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/truncdfsf2vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/divsf3vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/floatsidfvfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/ltdf2vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/gedf2vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/ledf2vfp_test.c (diff)
The file was modifiedcompiler-rt/test/builtins/Unit/subdf3vfp_test.c (diff)
Commit 7924fb34f33a76fd3c36f5635dd40990ecd79741 by riddleriver
[mlir][OpFormatGen] Add support for optional enum attributes

The check for formatting enum attributes was missing a call to get the base attribute, which is necessary to strip off the top-level OptionalAttr<> wrapper.

Differential Revision:
The file was modifiedmlir/test/lib/Dialect/Test/ (diff)
The file was modifiedmlir/test/mlir-tblgen/op-format.mlir (diff)
The file was modifiedmlir/test/Target/llvmir.mlir (diff)
The file was modifiedmlir/tools/mlir-tblgen/OpFormatGen.cpp (diff)
Commit 47364f95e810f96fd300ceaa095719f76683e6fa by riddleriver
[mlir][IR] Move the storage for results to before the Operation instead of after.

Trailing objects are really nice for storing additional data inline with the main class, and is something that we heavily take advantage of for Operation(and many other classes). To get the address of the inline data you need to compute the address by doing some pointer arithmetic taking into account any objects stored before the object you want to access. Most classes keep the count of the number of objects, so this is relatively cheap to compute. This is not the case for results though, which have two different types(inline and trailing) that are not necessarily as cheap to compute as the count for other objects. This revision moves the storage for results to before the operation and stores them in reverse order. This allows for getting results to still be very fast given that they are never iterated directly in order, and also greatly improves the speed when accessing the other trailing objects of an operation(operands/regions/blocks/etc).

This reduced compile time when compiling a decently sized mlir module by about ~400ms, or 2.17s -> 1.76s.

Differential Revision:
The file was modifiedmlir/lib/IR/OperationSupport.cpp (diff)
The file was modifiedmlir/include/mlir/IR/Operation.h (diff)
The file was modifiedmlir/include/mlir/IR/OperationSupport.h (diff)
The file was modifiedmlir/lib/IR/Operation.cpp (diff)
Commit 3c12307c7a0523716de3dae883bc4f126a395d43 by evandro.menezes
[RISCV] Formatting for easier reading (NFC)

Authored-by: Hsiangkai Wang <>
The file was modifiedllvm/lib/Target/RISCV/ (diff)