| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- # Part of the Carbon Language project, under the Apache License v2.0 with LLVM
- # Exceptions. See /LICENSE for license information.
- # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- """Definitions of optimization `cc_toolchain_config` features."""
- load("@rules_cc//cc:action_names.bzl", "ACTION_NAME_GROUPS")
- load(
- "@rules_cc//cc:cc_toolchain_config_lib.bzl",
- "feature",
- "feature_set",
- "flag_group",
- "flag_set",
- "with_feature_set",
- )
- # Handle different levels of optimization with individual features so that
- # they can be ordered and the defaults can override the minimal settings if
- # both are enabled.
- minimal_optimization_flags = feature(
- name = "minimal_optimization_flags",
- flag_sets = [flag_set(
- actions = ACTION_NAME_GROUPS.all_cc_compile_actions,
- flag_groups = [flag_group(flags = ["-Og"])],
- )],
- )
- default_optimization_flags = feature(
- name = "default_optimization_flags",
- enabled = True,
- requires = [feature_set(["opt"])],
- flag_sets = [
- flag_set(
- actions = ACTION_NAME_GROUPS.all_cc_compile_actions,
- flag_groups = [flag_group(flags = ["-DNDEBUG"])],
- ),
- flag_set(
- actions = ACTION_NAME_GROUPS.all_cc_compile_actions,
- flag_groups = [flag_group(flags = ["-O3"])],
- ),
- ],
- )
- cpu_flags = feature(
- name = "aarch64_cpu_flags",
- enabled = True,
- flag_sets = [
- flag_set(
- actions = ACTION_NAME_GROUPS.all_cc_compile_actions + ACTION_NAME_GROUPS.all_cc_link_actions,
- flag_groups = [flag_group(flags = ["-march=armv8.2-a"])],
- with_features = [with_feature_set(["aarch64_target"])],
- ),
- flag_set(
- actions = ACTION_NAME_GROUPS.all_cc_compile_actions + ACTION_NAME_GROUPS.all_cc_link_actions,
- flag_groups = [flag_group(flags = ["-march=x86-64-v2"])],
- with_features = [with_feature_set(["x86_64_target"])],
- ),
- ],
- )
- # Note that the order of features is significant in this list and determines the
- # relative order of flags from the features listed.
- optimization_features = [
- minimal_optimization_flags,
- default_optimization_flags,
- cpu_flags,
- ]
|