2611 "Enable experimental Valhalla features") \ 2612 \ 2613 product(bool, EnableValhallaC1, false, \ 2614 "Enable C1 compiler for Valhalla") \ 2615 \ 2616 product_pd(bool, ValueTypePassFieldsAsArgs, \ 2617 "Pass each value type field as an argument at calls") \ 2618 \ 2619 product_pd(bool, ValueTypeReturnedAsFields, \ 2620 "Return fields instead of a value type reference") \ 2621 \ 2622 develop(bool, StressValueTypePassFieldsAsArgs, false, \ 2623 "Stress passing each value type field as an argument at calls") \ 2624 \ 2625 develop(bool, StressValueTypeReturnedAsFields, false, \ 2626 "Stress return of fields instead of a value type reference") \ 2627 \ 2628 develop(bool, ScalarizeValueTypes, true, \ 2629 "Scalarize value types in compiled code") \ 2630 \ 2631 experimental(bool, UsePointerPerturbation, false, \ 2632 "With value types, use the perturbation scheme for acmp") \ 2633 2634 2635 2636 #define VM_FLAGS(develop, \ 2637 develop_pd, \ 2638 product, \ 2639 product_pd, \ 2640 diagnostic, \ 2641 diagnostic_pd, \ 2642 experimental, \ 2643 notproduct, \ 2644 manageable, \ 2645 product_rw, \ 2646 lp64_product, \ 2647 range, \ 2648 constraint, \ 2649 writeable) \ 2650 \ 2651 RUNTIME_FLAGS( \ 2652 develop, \ | 2611 "Enable experimental Valhalla features") \ 2612 \ 2613 product(bool, EnableValhallaC1, false, \ 2614 "Enable C1 compiler for Valhalla") \ 2615 \ 2616 product_pd(bool, ValueTypePassFieldsAsArgs, \ 2617 "Pass each value type field as an argument at calls") \ 2618 \ 2619 product_pd(bool, ValueTypeReturnedAsFields, \ 2620 "Return fields instead of a value type reference") \ 2621 \ 2622 develop(bool, StressValueTypePassFieldsAsArgs, false, \ 2623 "Stress passing each value type field as an argument at calls") \ 2624 \ 2625 develop(bool, StressValueTypeReturnedAsFields, false, \ 2626 "Stress return of fields instead of a value type reference") \ 2627 \ 2628 develop(bool, ScalarizeValueTypes, true, \ 2629 "Scalarize value types in compiled code") \ 2630 \ 2631 experimental(uint, ACmpOnValues, 2, \ 2632 "0 = regular acmp" \ 2633 "1 = always false for value, perturbation scheme" \ 2634 "2 = always false for value" \ 2635 "3 = substitutably test") \ 2636 range(0, 3) \ 2637 2638 2639 2640 #define VM_FLAGS(develop, \ 2641 develop_pd, \ 2642 product, \ 2643 product_pd, \ 2644 diagnostic, \ 2645 diagnostic_pd, \ 2646 experimental, \ 2647 notproduct, \ 2648 manageable, \ 2649 product_rw, \ 2650 lp64_product, \ 2651 range, \ 2652 constraint, \ 2653 writeable) \ 2654 \ 2655 RUNTIME_FLAGS( \ 2656 develop, \ |