Happy Year of Rabbit!
As we recovered from COVID-19, we spent two weeks of precious down time during the Lunar New Year vacation. Let's wish for a fruitful year to come!
Vacation time!
- 4204830: [riscv] Fix atomics, https://chromium-review.googlesource.com/c/v8/v8/+/4204830.
- 4178897: [riscv] Rename CodeDataContainer to Code, https://chromium-review.googlesource.com/c/v8/v8/+/4178897.
- 4166713: [riscv][codet] Remove the CodeT=Code implementation, https://chromium-review.googlesource.com/c/v8/v8/+/4166713.
- Fix two temp regs in do_oop_load/do_oop_store, openjdk-riscv/jdk11u#583
- Pull requests to jdk-mainline:
- openjdk/jdk#11858 (8299580: RISC-V: fail to build with GCC 12 due to stringop-overflow warning)
- openjdk/jdk#11919 (8299847: RISC-V: Improve PrintOptoAssembly output of CMoveI/L nodes)
- openjdk/jdk#11988 (8300109: RISC-V: Improve code generation for MinI/MaxI nodes)
- Co-authored pull requests to jdk-mainline:
- openjdk/jdk#11004 (8293841: RISC-V: Implementation of Foreign Function & Memory API (Preview))
- openjdk/jdk#12065 (8300247: Harden C1 xchg on AArch64 and PPC)
- openjdk/jdk20#85 (8294744: AArch64: applications/kitchensink/Kitchensink.java crashed: assert(oopDesc::is_oop(obj)) failed: not an oop)
- openjdk/jdk20#101 (8298400: Virtual thread instability when stack overflows)
- jdk-mainline pull requests reviewed:
- openjdk/jdk#11828 (8299525: RISC-V: Add backend support for half float conversion intrinsics)
- openjdk/jdk#11839 (8298720: Insufficient error handling when CodeBuffer is exhausted)
- openjdk/jdk#11774 (8299312: Clean up BarrierSetNMethod)
- openjdk/jdk#11570 (JDK-8153837: AArch64: Handle special cases for MaxINode & MinINode)
- openjdk/jdk#11921 (8299844: RISC-V: Implement _onSpinWait intrinsic)
- openjdk/jdk#11902 (8299795: Relativize locals in interpreter frames)
- openjdk/jdk20#87 (8299733: AArch64: "unexpected literal addressing mode" assertion failure with -XX:+PrintC1Statistics)
- RISC-V port for Foreign-API:
- Passed community code-review: openjdk/jdk#11004
- Merged to OpenJDK master: https://github.com/openjdk/jdk/commit/24cdcd4c70dd538fd6c6c9f05da480ea65463209
- Will be available in JDK LTS 21 (FFM is currently in preview status).
- Upstreamed changes.
- Upstreamed changes.
- Vector-API Test
- Upstreamed changes.
- Feature test results.
- Upstreamed patches.
- [RISCV] Optimize (brcond (seteq (and X, (1 << C)-1), 0)) https://reviews.llvm.org/D141607
- [LLDB][RISCV] Add RVDC instruction support for EmulateInstructionRISCV https://reviews.llvm.org/D140961
- [LLDB][RISCV] Add RVV registers enums https://reviews.llvm.org/D141898
- [C2x] reject type definitions in offsetof https://reviews.llvm.org/D133574
- Diagnose extensions in 'offsetof' https://github.com/llvm/llvm-project/commit/f1f0a0d8e8fdd2e534d9423b2e64c6b8aaa53aee
- [RISCV][VP] expand vp intrinsics if no +zve32x feature https://reviews.llvm.org/D139706
- [Local][InstCombine][GVN] Handle !noundef metadata in combineMetadata https://reviews.llvm.org/D142801
- [InstCombine] Don't combine smul of i1 type constant one https://reviews.llvm.org/D141214
- [MemorySSA] Don't check def set when cloning memoryaccesses https://reviews.llvm.org/D141185
- [InstCombine] Combine (zext a) mul (zext b) to llvm.umul.with.overflow only if mul has NUW flag https://reviews.llvm.org/D141031
- [RISCV] Add MC support of RISCV Zcb Extension https://reviews.llvm.org/D131141
- Upstream merged patch for
CallingConvId
changes, https://go-review.googlesource.com/c/gollvm/+/427737
- Rebasing GCC intrinsic implementation of scalar cryptography instruction extension. Currently, we have determined the naming conventions for intrinsic in RISC-V C API - all intrinsic will have the
__riscv
prefix. We will update the upstream patch as we complete work in this area. - Added support for the
zicond
extension in GCC, we will work on Binutils support later. As the extension ratifies, we will upstream these implementations. - Discussed RV64-ILP32 statuses at the psABI meeting. RV64-ILP32 is currently listed in on the 2023 roadmap and will likely make it on the final draft.
- Communicated progression with the OpenHW community on implementing the Codesize Reduction extension. The extension has been updated to v1.0.1. We plan to split up the patches for upstreaming.
- Filed a GCC bug report, "Sub-optimal code-gen for vsetvli: redundant stack store."
- Arch Linux RISC-V Porting Status available at the Arch Linux RISC-V page.
- [core] 254 / 262 (96.94%)
- [extra] 2845 / 3087 (92.16%)
- [community] 8910 / 9949 (89.55%)
- Git Repository for Arch Linux RISC-V package patches, archriscv-packages. A total of 73 Pull Requests 。
- Upstream:
- Blog:
Stats: 8056/19077, 42.23% (https://whale.plctlab.org/riscv/support-statistics/)
- A total of 32 keywording commits (include non-PLCT team members): https://whale.plctlab.org/riscv/stats/2023_01.txt
- sys-cluster/mpich: Keyword 3.4.3 riscv, gentoo/gentoo@824e477
- x11-wm/qtile: Keyword 0.22.1-r1 riscv, gentoo/gentoo@1c8a6a2
- Update Calculate Linux RISC-V binhost packages: https://mirror.onfoo.top/calculate/
- @NickCao is now a Nixpkgs committer
- firmware for visionfive 2 https://hydra.nichi.co/job/nixos/riscv/firmware-vf2/latest/
- ninja: fix cross compilation NixOS/nixpkgs#210149
- python311: fix cross compilation NixOS/nixpkgs#209622
- opensbi: 1.1 -> 1.2 NixOS/nixpkgs#209120
- gtk-layer-shell: mark wayland-scanner as a build-time dependency wmww/gtk-layer-shell#146
- gtk-layer-shell: fix cross compilation NixOS/nixpkgs#211502
- rpm: fix cross compilation NixOS/nixpkgs#211500
- riscv-gnu-toolchain riscof and fusesoc coming to Nixpkgs: NixOS/nixpkgs#213222
- rvvm: init at 0.5-20230125.4de27d7 NixOS/nixpkgs#212710
- rav1e: use libgit2 from Nixpkgs NixOS/nixpkgs#212597
- linuxPackages.cryptodev: cleanup and fix cross compilation NixOS/nixpkgs#211719
Patches for RISC-V JIT support has been merged upstream.
- https://bugzilla.mozilla.org/show_bug.cgi?id=1800431
- https://phabricator.services.mozilla.com/D161986
- https://phabricator.services.mozilla.com/D163407
- https://phabricator.services.mozilla.com/D163406
Please stay tuned.
Please stay tuned.
- Added test cases for default construct functions.
- Verified test cases under IBM/s390x big endian using Qemu and Docker.
Please stay tuned.
Please stay tuned.
- Updated pull requests for
Zc\*
fixes and variable length XLEN. - Added support for the
Zfa
extension.
- Added support for the
Zfa
extension. - Updated the
Zc\*
extension to v10. - Updated support for
xpulp
encoding.
Please stay tuned.
Please stay tuned.
Shi Ninging (史宁宁) continues to work on compiling the OpenArkCompiler Weekly, which just published its 147th issue.
You may find new weekly issues of the OpenArkCompiler Weekly on Sundays on...
- GitHub: https://github.com/isrc-cas/arkcompiler-materials
- Zhihu: https://zhuanlan.zhihu.com/openarkcompiler
- Bilibili: https://www.bilibili.com/read/readlist/rl199373
- Mailing list and other channels: https://gitee.com/openarkcompiler/OpenArkCompiler/issues/I1EWAX
Please stay tuned.
- Restrict
vector.type_cast
to only cast to alignable multi-dim vectors. - [WIP] Draft for new Vector Mask and Dynamic VL implementation.
Homepage, https://buddy-compiler.github.io/.
buddy-caas
- Buddy Compiler As A Service(Buddy-CAAS)- https://buddy.isrc.ac.cn/
- Add syntax highlight for MLIR in buddy-caas editor.
buddy-mlir
https://github.com/buddy-compiler/buddy-mlir
- [backend] Add gemmini instructions.
- [RVV] Add Rsqrt operation.
- [examples][MLIRVector] Improve vector dialect examples.
buddy-benchmark
https://github.com/buddy-compiler/buddy-benchmark
- [benchmarks/ImageProcessing] Use dip.mlir directly instead of stand-alone compilation.
Please stay tuned.
Please stay tuned.
Please stay tuned.
- Implement hart hotplug using HSM extension for AE350, ref
- OpenSBI debug console support, ref
- SBI system suspend (SUSP) extension, ref
- treewide: Replace TRUE/FALSE with true/false, ref
- Split RX and RW regions for separate pmp entries, ref
- Add RISC-V TEE support, ref
- platform/generic/renesas/rzfive: Configure the Local memory regions as part of root domain, ref
- Renesas RZ/Five: add support to configure PMA and add vendor specific SBI extension, ref
- lib/sbi_hsm: Use csr_set to restore the MIP, ref
- lib/utils: Fix reserved memory node for firmware memory, ref
- firmware: Fix fw_rw_offset computation in fw_base.S, ref
- lib/utils: Mark only the largest region as reserved in FDT, ref
- Add endianness conversion support, ref
- Miscellaneous about sbi_tlb and sbi_ipi, ref
Please stay tuned.
The last few month's work has focused on interoperability between eBPF and Wasm. We have also refactored all Wasm components in the old source tree.
- Implemented a generic Wasm + eBPF runtime platform and a code generator based on bpftool, ref
- Life-cycle management, serialization between kernel-mode eBPF and user-mode Wasm, bi-directional communication in memory within Wasm for eBPF objects. You may now access virtually all low-level
map
classes in eBPF, perf event, and ring buffer. This is applicable for almost all eBPF use cases. - Virtually identical to libbpf-bootstrap - simple, and convenient development experience, as it automatically genrates user-mode code framework and struct types for communicating between Wasm virtual machines and eBPF.
- Just over 300 lines of runtime code outside the Wasm virtual machine.
- Filed an issue for WASI.
- Life-cycle management, serialization between kernel-mode eBPF and user-mode Wasm, bi-directional communication in memory within Wasm for eBPF objects. You may now access virtually all low-level
- Generate C structs serialization-free bindings and marshal / unmarshal functions for JSON (can be used for pass struct data between Wasm and eBPF/host), ref
- Generate Wasm wit format from BTF info (generates bindings for multiple languages via wit-bindgen), ref
- Some improvements to the eBPF tutorial documentation (16 commits), ref
- Added some examples, CI integration, test cases, documentations, and the aforementioned features (24 pull requests), ref
- Added full support for eBPF-packaged OCI images, ref
- Basic RISC-V support added for
eunomia-bpf
. - Published a package for NixOS, ref
- Published a pacakge for OpenEuler, ref
- v0.28 Refactor the unsafe
ImmutableSeq<String>
PR-887 opened by HoshinoTented - v0.28 Refactor qid refactor round two PR-894 opened by ice1000
- Refactor qid refactor PR-893 opened by imkiva
- v0.28 Improve scripts for real this time PR-892 opened by ice1000
- v0.28 Improve scripts PR-891 opened by ice1000
- v0.28 Fix jlink problems PR-890 opened by ice1000
- v0.28 Split
cli
intocli-impl
andcli-console
PR-889 opened by ice1000 - v0.28 Gradle 8.0-rc-2 PR-888 opened by ice1000
- v0.28 Concrete refactorings: step 2 PR-886 opened by ice1000
- v0.28 Concrete refactoring: step 1 PR-885 opened by ice1000
- v0.28 Cleanup concrete decls: step 0 PR-884 opened by ice1000
- v0.28 KALA: upgrade to 0.62.0 PR-883 opened by Glavo
- v0.27 Release v0.27 PR-882 opened by ice1000
- v0.27 Fix sigma projection checking PR-881 opened by ice1000
- v0.27 Random refactoring, preparing for fixing
Prop
tycking PR-880 opened by ice1000 - rfc: coercion-agent PR-850 opened by SchrodingerZhu
- v0.27 Better error reporting for holes with conditions. PR-878 opened by wsx-ucb
- v0.27 No More Duplicated Vars PR-665 opened by HoshinoTented
- v0.27 Irrelevance of
Prop
WIP PR-875 opened by ice1000 - v0.27 More robust parsing PR-876 opened by ice1000
- v0.27 Reimplement sort system: step 1 PR-874 opened by ice1000
- v0.27 Happy new year! PR-873 opened by ice1000
- v0.27 Do not reuse tycker PR-869 opened by ice1000
Term
refactoring PR-871 opened by wsx-ucb- v0.27 KALA: upgrade to 0.61.0 PR-870 opened by Glavo
- WIP: Copy Covariance from Arend( PR-851 opened by mio-19
- feat: add utils for dynamic congruence class checking PR-868 opened by SchrodingerZhu
- v0.27 Generate test reports PR-867 opened by ice1000
Ran various benchmarks on the Visionfive V1 development board.
See also our coverage on Zhihu (in Chinese), https://zhuanlan.zhihu.com/p/599418843.
- Tested the CI functionalities on https://cloud-v.co, reported all issues with Ali the administrator. All reported issues has been addressed, a test report may be found here.
- Learned to use
labgrid
Python library and conducted experimented on Lichee RV boards. Implemented automatic testing via serial or SSH connecctions usingpytest
andlabgrid
. The findings has been compiled into documentation (in Chinese), https://zhuanlan.zhihu.com/p/598819168. - Per request by Mentor Luo's testing team, we looked for automatic testing tools suitable for Deepin. Thus far, we have examined
piuparts
andautopkgtest
, which ran successfully in Debian RISC-V Docker containers. We are now attempting to run these test tools in Deepin RISC-V via Qemu.
- PLCT's 2022 Roadmap, https://github.com/plctlab/PLCT-Weekly/blob/master/PLCT-Roadmap-2022.md
- Open job positions at the PLCT Lab, https://github.com/plctlab/PLCT-Weekly/blob/master/Jobs.md
- Open intern positions at the PLCT Lab, https://github.com/plctlab/weloveinterns/blob/master/open-internships.md
- PLCT Weekly Reports, https://github.com/isrc-cas/PLCT-Weekly
- PLCT Open Reports (incomplete), https://github.com/isrc-cas/PLCT-Open-Reports