RISE Compiler/Toolchain Projects Tracking

Topic IDTopic NamePriorityDevelopmentUpstreamingDependencyTentative ETACompanyContactComments
GCC (00)
CT_00_001Autovectorization (basic)HighCompletedCompletedPSABI Vector specificationQ2 2024Rivos, Intel, VentanaJeff Law (Ventana)
rufus@andestech.com
jim@andestech.com
Ken Unger?
Andrew de los Reyes (Rivos)
Pan Li (Intel)
Planning an unofficial branch off the gcc-13 release with backports of autovect work. Available to community at large (June 2023)
CT_00_002Inlined subword atomics, forward compatible mappings, optimizations for ZtsoHighCompletedCompleted
Q3 2023Google, Rivos, VentanaJeff Law (Ventana)To be included in gcc-13.2 release in Aug 2023, significant downstream dependencies
CT_00_003Redundant Extension Elimination (GCC)MediumInProgressInProgress

VentanaJeff Law (Ventana)Expose sign-extending sematics of 32bit ops in rv64, reduces dynamic instruction counts by about .5% across specint2017. RAU's contribution
CT_00_004Address reassociation (GCC)MediumInProgressInProgress

VentanaJeff Law (Ventana)Reassocating after register elimination, VRULL's work
CT_00_005If-conversion (GCC )MediumCompletedInProgress

VentanaJeff Law (Ventana)
efriedma@quicinc.com
ZICond target support and middle end improvements
CT_00_006Zfa support (GCC)MediumCompletedCompleted

Ventana
Rivos
Jeff Law (Ventana)
CT_00_007Fusion support (GCC)MediumCompletedNotStarted

VentanaJeff Law (Ventana)Keep fused ops together to improve performance
CT_00_008Backtracing (better in debugger group?)UnknownInProgressInProgress

Intel,Andrei Warkentin (Intel)
efriedma@quicinc.com
DWARF/CFI is not appropriate for firmware environments
CT_00_009CRC Optimization (GCC)MediumInProgressNotStarted

VentanaJeff Law (Ventana)Helps coremark, but more importantly 200+ implementations in distros
CT_00_010Long branch support (GCC)MediumCompletedCompleted

VentanaJeff Law (Ventana)Support for functions > 1M in size
CT_00_011Stack clash (GCC)MediumUnknownUnknown

VentanaJeff Law (Ventana)Distro blocker (Fedora)
CT_00_013Autovectorization (improvements)HighInProgressInProgressPSABI Vector specificationQ2 2024Rivos, Intel, VentanaJeff Law (Ventana)
rufus@andestech.com
jim@andestech.com
Ken Unger?
Andrew de los Reyes (Rivos)
Pan Li (Intel)
Planning an unofficial branch off the gcc-13 release with backports of autovect work. Available to community at large (June 2023)
CT_00_012Inline expansion of mem* and str*MediumInProgressInProgress




CT_00_14Common syntax for target attribute (GCC)MediumCompletedInProgress



Allows for specification of target switches on a per-function basis. Prereq for function multiversioning
LLVM (01)
CT_01_001Autovectorization (basic)HighInProgressInProgressPSABI Vector SpecificationQ3 2023Rivos, Google, Imagination, MediaTek, Andestech, SiFive, Ventana

preames@rivosinc.com
rufus@andestech.com
jim@andestech.com
Chibang Kuan
Simon Harvey (Imagination Technologies)
Ken Unger?
Nathan Egge (Google)

Alexey Bataev (SiFive) efriedma@quicinc.com

Partially lit up in LLVM 16, major development in flight for LLVM 17 which should release in Q3 2023
CT_01_002Forward compatible atomics mappingsHighCompletedCompleted
Q2 2023Google, Rivos, VentanaNathan Egge (Google)
efriedma@quicinc.com
To be included in LLVM 17 release in Q3 2023, significant downtream dependencies
CT_01_003Shadow Stack (LLVM)HighInProgressNotStartedPSABI specs to allow x3 to become OS specific register
Google, MediatekNathan Egge (Google)
Chibang Kuan
Zisslpcfi, upstream and downstream dependencies. ABI implications, distro blocker for Android
CT_01_004Zfa support (LLVM)MediumCompletedCompleted
Q2 2023VentanaCraig Topper (SiFive)
Jeff Law (Ventana)

CT_01_005Fusion support (LLVM)MediumInProgressNotStarted

VentanaJeff Law (Ventana)Keep fused ops together to improve performance
CT_01_006Stack clash (LLVM)MediumUnknownUnknown

VentanaJeff Law (Ventana)Distro blocker (Android)
CT_01_007CRC Optimization (LLVM)MediumCompletedNotStarted

VentanaJeff Law (Ventana)Helps coremark, but more importantly 200+ implementations in distros
CT_01_008Autovectorization (improvements)HighInProgressInProgressPSABI Vector SpecificationQ3 2023Rivos, Google, Imagination, MediaTek, Andestech, SiFive, Ventanapreames@rivosinc.com
rufus@andestech.com
jim@andestech.com
Chibang Kuan
Simon Harvey (Imagination Technologies)
Ken Unger?
Nathan Egge (Google)
efriedma@quicinc.com
Partially lit up in LLVM 16, major development in flight for LLVM 17 which should release in Q3 2023
CT_01_009Common syntax for target attribute (LLVM)MediumUnknownUnknown



Allows for specification of target switches on a per-function basis. Prereq for function multiversioning
Toolchain-wide items (03)








CT_03_001Binary toolchain packagesMediumCompletedInProgress
Q2 2023ImaginationSimon Harvey (Imagination Technologies)Updating package hosting for wider sharing
Uncategorized items

Large Code ModelMediumInProgressNotStarted

Rivos, AndestechAndrew de los Reyes (Rivos)
Nelson Chu (Rivos)
rufus@andestech.com
Nelson actively working on this (presumably LLVM)

Shadow Stack (GCC)UnknownUnknownUnknown

Ventana
Rivos
Jeff Law (Ventana)
Greg McGary
Zisslpcfi, upstream and downstream dependencies. ABI impications, but not a distro blocker for Fedora

Build FarmUnknownUnknownUnknown

Rivos, VentanaAndrew de los Reyes (Rivos)
Jeff Law (Ventana)


SVE Transition ToolUnknownUnknownUnknown

Intel
Alibaba
yunhai.syh@alibaba-inc.comMigration from ARM SVE to RISC-V intrinsics

If-conversion (LLVM)UnknownUnknownUnknown

VentanaJeff Law (Ventana)
efriedma@quicinc.com
ZICond target support and middle end improvements

OpenMPUnknownUnknownUnknown

MicrochipKen Unger

Function MultiversioningMediumUnknownUnknown

Ventana
Rivos
Jeff Law (Ventana)Will have downstream dependencies in some libraries

Sanitizers (GCC)MediumUnknownUnknown

VentanaJeff Law (Ventana)THis may be OK. So step #1 is to determine state

Sanitizers (LLVM)UnknownUnknownUnknown

VentanaJeff Law (Ventana)This my be OK. So step #1 is to determine state

Long branch support (LLVM)UnknownUnknownUnknown

VentanaJeff Law (Ventana)Not sure if this is needed in LLVM. Check

Code Alignment (GCC)MediumEvaluatingUnknown

VentanaJeff Law (Ventana)Not sure if this is needed in LLVM. Check

Code Alignment (LLVM)MediumNotStartedUnknown

VentanaJeff Law (Ventana)Not sure if this is needed in LLVM. Check

GCOV Support (GCC)MediumNotStartedUnknown

VentanaJeff Law (Ventana)gcov *might* just work, we need to evaluate