dotnet/runtime

Consider a new flag COMPlus_EnableVEX

Open

#10,808 opened on Jul 31, 2018

View on GitHub
 (17 comments) (0 reactions) (0 assignees)C# (5,445 forks)batch import
area-CodeGen-coreclrhelp wantedtest-enhancement

Repository metrics

Stars
 (17,886 stars)
PR merge metrics
 (Avg merge 12d 11h) (661 merged PRs in 30d)

Description

Proposal

Introduce a new flag (COMPlus_EnableVEX) and make some minor changes to the existing flag (COMPlus_EnableAVX).

Rationale

Prior to the HWIntrinsics feature, the COMPlus_EnableAVX flag only controlled support for AVX/AVX2 (which it did by enabling/disabling the VEX-encoding path in the emitter).

However, now that HWIntrinsics exist, there are a number of additional ISAs that are impacted by this flag (BMI1, BMI2, FMA). Since this flag now controls more than its original scope, and that may cause additional confusion later on, we should instead split the functionality into separate logical flags before the HWIntrinsics feature ships.

Changes

Introduce COMPlus_EnableVEX, this would control whether or not the VEX-encoding is support by the emitter. It would impact all ISAs that use the VEX encoding.

Change COMPlus_EnableAVX to only control the AVX/AVX2 ISAs.

category:testing theme:emitter skill-level:beginner cost:small impact:small

Contributor guide